Re: [sigc] trying to compile a static library version



Am Montag, 30. Juli 2007 19:02:52 schrieben Sie:
> >   // MS VC7 Warning 4251 says that the classes to any member objects in
> > an // exported class must be also be exported.  Some of the libsigc++ //
> > template classes contain std::list members.  MS KB article 168958 says //
> > that it's not possible to export a std::list instantiation due to some //
> > wacky class nesting issues, so our only options are to ignore the //
> > warning or to modify libsigc++ to remove the std::list dependency. //
> > AFAICT, the std::list members are used internally by the library code //
> > and don't need to be used from the outside, and ignoring the warning //
> > seems to have no adverse effects, so that seems like a good enough //
> > solution for now.
> >
> > So maybe sigc++ needs to get a workaround for this compiler bug.
>
> Maybe. Patches are welcome.
>
> In general, I believe that the non-static Visual Studio build works fine
> for gtkmm.

Our problem *is* with a non-static build.  I don't know MSVC myself, but here 
is the error message that my colleague gets (sorry for the German parts, it 
says "reference to not resolved external symbol ... in function ..."):

cppmapmodule.obj : error LNK2019: Verweis auf nicht aufgelöstes externes 
Symbol ""__declspec(dllimport) protected: class std::list<class 
sigc::slot_base,class std::allocator<class sigc::slot_base> >::_Iterator<0> 
__thiscall sigc::signal_base::connect(class sigc::slot_base const &)"
in Funktion ""public: struct sigc::slot_iterator<class sigc::slot<bool,class 
GeoMap::Node &,struct sigc::nil,struct sigc::nil,struct sigc::nil,struct 
sigc::nil,struct sigc::nil,struct sigc::nil> > __thiscall 
sigc::signal1<bool,class GeoMap::Node &,struct 
interruptable_accumulator>::connect(class sigc::slot<bool,class GeoMap::Node 
&,struct sigc::nil,struct sigc::nil,struct sigc::nil,struct sigc::nil,struct 
sigc::nil,struct sigc::nil> const &)"

The commandline composed by MSVC contains the following flags for compilation: 
cl /O2 /I ... /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL"
  /D "_CRT_SECURE_NO_DEPRECATE" /D "_SECURE_SCL=0"
  /D "_VC80_UPGRADE=0x0710" /D "_WINDLL" /D "_MBCS" /GF /FD /EHsc /MD /Gy
  /Fp"\Release/hourglassmodule.pch" /Fo".\Release/"
  /Fd".\Release/" /W3 /nologo /c /errorReport:prompt

And the following linker flags:
link /OUT:"hourglass.pyd" /INCREMENTAL:NO /NOLOGO
  /LIBPATH:"C:\Programme\Python2.5\libs" /LIBPATH:"C:\ukoethe\lib"
  /DLL /MANIFEST /MANIFESTFILE:".\Release\hourglass.pyd.intermediate.manifest"
  /PDB:".\Release/hourglassmodule.pdb"
  /IMPLIB:".Release/hourglassmodule.lib" /ERRORREPORT:PROMPT
  ..\..\interactive2\src\vigracmodule\Release\pythonimage.obj
  boost_python-vc80-mt-1_34_1.lib sigc-2.0.dll.lib  kernel32.lib
  user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib
  ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib

It would be cool if someone knew what triggers that error.

-- 
Ciao, /  /
     /--/
    /  / ANS



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]