From: William S F. <ws...@fu...> - 2009-02-19 07:39:28
|
Gerrick Bivins wrote: > Hello, sorry for the long post, I’ve been at this for a while. > I’ve successfully used swig to wrap a shared lib on mac, however, I > recently tried compiling > on windows and I ran into a problem with my export define. I’m sure it’s > something simple but I haven’t been able to find a solution. I’m using > cmake to generate my build system. > > This is the error: > 1>.\CellDiscontinuousScalarInformationJAVA_wrap.cxx(595) : error C4430: > missing type specifier - int assumed. Note: C++ does not support default-int > 1>.\CellDiscontinuousScalarInformationJAVA_wrap.cxx(596) : error C4430: > missing type specifier - int assumed. Note: C++ does not support default-int > 1>.\CellDiscontinuousScalarInformationJAVA_wrap.cxx(600) : error C2071: > 'abstract declarator' : illegal storage class > 1>.\CellDiscontinuousScalarInformationJAVA_wrap.cxx(606) : error C2513: > 'ORReader::CellDiscontinuousScalarInformation' : no variable declared > before '=' > 1>.\CellDiscontinuousScalarInformationJAVA_wrap.cxx(613) : error C4430: > missing type specifier - int assumed. Note: C++ does not support default-int > 1>.\CellDiscontinuousScalarInformationJAVA_wrap.cxx(617) : error C2275: > 'ORReader::CellDiscontinuousScalarInformation' : illegal use of this > type as an expression > 1>.\CellDiscontinuousScalarInformationJAVA_wrap.cxx(618) : error C2071: > 'abstract declarator' : illegal storage class > 1>.\CellDiscontinuousScalarInformationJAVA_wrap.cxx(618) : error C2071: > 'Target of operator new()' : illegal storage class > 1>.\CellDiscontinuousScalarInformationJAVA_wrap.cxx(618) : error C2071: > 'abstract declarator' : illegal storage class > > The problem come from my definition of ORREADER_EXPORTS used on my class > like so: > ... > class ORREADER_EXPORTS CellDiscontinuousScalarInformation > { > ... > > Where ORREADER_EXPORTS is defined like: > > #if defined(_MSC_VER) || defined(__CYGWIN__) || defined(__MINGW32__) || > defined( __BCPLUSPLUS__) || defined( __MWERKS__) > # ifdef cellLookup_EXPORTS > # define ORREADER_EXPORTS __declspec(dllexport) > # else > # define ORREADER_EXPORTS __declspec(dllimport) > # endif /* cellLookup_EXPORTS */ > #else > # define ORREADER_EXPORTS > #endif > > Here is my interface file: > %module CellDiscontinuousScalarInformationModule %{ /* Includes the > header in the wrapper code */ #include > "include/CellDiscontinuousScalarInformation.h" %} /* Parse the header > file to generate wrappers */ %include <std_vector.i> %include > <std_map.i> namespace std { %template(IntVector) std::vector<int>; > %template(DoubleVector) std::vector<double>; } #ifdef SWIGWIN %include > <windows.i> %enddef #endif %include > "../include/CellDiscontinuousScalarInformation.h" > > And lastly, here is my compile line from msvc: > > cl /Od /I "C:\Program Files\Java\jdk1.6.0_06\include" /I "C:\Program > Files\Java\jdk1.6.0_06\include\win32" /I > "E:\work\OR_src\vis-tools\modelViewerVTK\cellPsuedoTable\wrappers" /I > "E:\work\OR_src\vis-tools\modelViewerVTK\cellPsuedoTable" /D "WIN32" /D > "_WINDOWS" /D "_DEBUG" /D "CMAKE_INTDIR=\"Debug\"" /D > "CellDiscontinuousScalarInformationJava_EXPORTS" /D "_WINDLL" /D "_MBCS" > /FD /EHsc /RTC1 /MDd > /Fo"CellDiscontinuousScalarInformationJava.dir\Debug\\" > /Fd"E:/work/OR_src/vis-tools/modelViewerVTK/cellPsuedoTable/build/wrappers/Debug/CellDiscontinuousScalarInformationJava.pdb" > /W3 /c /Zi /TP /Zm1000 > ".\CellDiscontinuousScalarInformationJAVA_wrap.cxx" > > Can someone point me to an example of how to build this? From the few > examples I’ve found it should be easy but I’ve been stuck on this for a > couple of hours. Any help would be greatly appreciated. > Gerrick > Have you read about dllimport in the documentation, http://www.swig.org/Doc1.3/Windows.html? You probably need to #define ORREADER_EXPORTS to nothing. William |