>From your point 4) below, it looks like you only built the static libraries, not the dynamic libraries; is this what you intended? Not sure about VS Express, but in VS7/8 you can do a "batch build" and select any or all of dynamic/static and Release/Debug. The problem you reported in A) is missing third party dependencies. In order for OSG to support TIFF image files, for example, the TIFF plugin will need to link with the 3rd party libTIFF, and if you don't have the libTIFF headers and libraries installed, then the TIFF plugin will have build errors and not build. This is OK as long as you don't need TIFF support. I'm not sure about your problem B) below, but I suspect the portion of OSG you're trying to build requires the dynamic library version of OpenThreads and you have only built the static versions. I hope this helps a little. -Paul
_____ From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Yegor Plam at RR Sent: Friday, November 24, 2006 3:41 PM To: [email protected] Subject: [osg-users] Help: errors building osgCore and examples (VC++Express, WinXP) Hello, I'm a new user and am having trouble building the core and examples. 1) I am using VC++ Express on WinXP. 2) I downloaded OSG_OP_OT-1.2.zip and OpenSceneGraph-Data-1.1.zip 3) I built (in this order): OpenThreads, Producer, osg Core&Examples (the whole solution) 4) The first 2 seemed to build correctly. OpenThreads project generated OpenThreadsWin32d_s.lib in /lib/win32, and Producer project generated Producerd_s.lib in its /lib/win32. 5) Attempt to build Core and "everything else" generated a bunch of errors. On my first try, I (mistakenly) tried to build osgCore before OThreads and Producer, which resulted in a bunch of linker errors, something to the effect of "LINK error: can't find OpenThreadsWin32d.lib" (the osg solution build setting is "debug|static", btw). I then read the README.txt and tried again, building OT and P first. The resulting libraries have different names than the LINK error. (extra "_s"). So I created copies of both libraries without the "_s" and tried a clean build. Now I have the following set of errors: A) compile errors: can't find the following .h files: 'gdal_priv.h': No such file or directory 'tiffio.h': No such file or directory 'zlib.h': No such file or directory 'jpeglib.h': No such file or directory 'gif_lib.h': No such file or directory 'gdal_priv.h': No such file or directory 'ft2build.h': No such file or directory 'GL/glut.h': No such file or directory I searched for some of these files with WinExp search function. couldn't find them. B) Linker errors: 1>------ Build started: Project: Core osgIntrospection, Configuration: Debug Win32 ------ 1>Linking... 2>------ Build started: Project: Core osgTerrain, Configuration: Debug Static Win32 ------ 2>Compiling... 2>DataSet.cpp 1> Creating library ../../lib/Win32/osgIntrospectiond.lib and object ../../lib/Win32/osgIntrospectiond.exp 1>Reflection.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall OpenThreads::Mutex::Mutex(void)" ([EMAIL PROTECTED]@@[EMAIL PROTECTED]) referenced in function "private: static struct osgIntrospection::Reflection::StaticData & __cdecl osgIntrospection::Reflection::getOrCreateStaticData(void)" ([EMAIL PROTECTED]@osgIntrospection@@[EMAIL PROTECTED]@XZ) 1>Reflection.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: virtual __thiscall OpenThreads::Mutex::~Mutex(void)" ([EMAIL PROTECTED]@@[EMAIL PROTECTED]) referenced in function "void __cdecl `private: static struct Reflection::getOrCreateStaticData::StaticData & __cdecl osgIntrospection::Reflection::getOrCreateStaticData(void)'::`2'::`dynamic atexit destructor for 'access_mtx''(void)" ([EMAIL PROTECTED]@[EMAIL PROTECTED]@@CAAA [EMAIL PROTECTED]@[EMAIL PROTECTED]) 1>.\../../bin/Win32/osgIntrospectiond.dll : fatal error LNK1120: 2 unresolved externals 1>Build log was saved at "file://c:\OSG_OP_OT-1.2\OpenSceneGraph\VisualStudio\osgIntrospection\Win32\ Debug\BuildLog.htm" 1>Core osgIntrospection - 3 error(s), 0 warning(s) And. 9>------ Build started: Project: Example osgwindows, Configuration: Debug Win32 ------ 10>------ Build started: Project: Example osgvolume, Configuration: Debug Win32 ------ 9>Linking... 10>Linking... 9>msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: class std::basic_ostream<char,struct std::char_traits<char> > & __thiscall std::basic_ostream<char,struct std::char_traits<char> >::operator<<(class std::basic_ostream<char,struct std::char_traits<char> > & (__cdecl*)(class std::basic_ostream<char,struct std::char_traits<char> > &))" ([EMAIL PROTECTED]@[EMAIL PROTECTED]@@@std@@[EMAIL PROTECTED]@AAV01@@Z@ Z) already defined in OpenThreadsWin32d.lib(Win32Thread.obj) 9>msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl std::endl(class std::basic_ostream<char,struct std::char_traits<char> > &)" ([EMAIL PROTECTED]@@[EMAIL PROTECTED]@[EMAIL PROTECTED]@@@[EMAIL PROTECTED]@@Z) already defined in OpenThreadsWin32d.lib(Win32Thread.obj) 9>msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(char const *)" ([EMAIL PROTECTED]@[EMAIL PROTECTED]@@[EMAIL PROTECTED]@2@@std@@[EMAIL PROTECTED]@Z) already defined in OpenThreadsWin32d.lib(Win32Thread.obj) 9>msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)" ([EMAIL PROTECTED]@[EMAIL PROTECTED]@@[EMAIL PROTECTED]@2@@std@@[EMAIL PROTECTED]) already defined in OpenThreadsWin32d.lib(Win32Thread.obj) 9>msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: void __thiscall std::basic_ios<char,struct std::char_traits<char> >::setstate(int,bool)" ([EMAIL PROTECTED]@[EMAIL PROTECTED]@std@@@std@@[EMAIL PROTECTED]) already defined in OpenThreadsWin32d.lib(Win32Thread.obj) 9>msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: int __thiscall std::ios_base::width(int)" ([EMAIL PROTECTED]@std@@[EMAIL PROTECTED]) already defined in OpenThreadsWin32d.lib(Win32Thread.obj) 9>msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: int __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::sputn(char const *,int)" ([EMAIL PROTECTED]@[EMAIL PROTECTED]@std@@@std@@[EMAIL PROTECTED]) already defined in OpenThreadsWin32d.lib(Win32Thread.obj) 9>msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: static bool __cdecl std::char_traits<char>::eq_int_type(int const &,int const &)" ([EMAIL PROTECTED]@[EMAIL PROTECTED]@@[EMAIL PROTECTED]) already defined in OpenThreadsWin32d.lib(Win32Thread.obj) 9>msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: static int __cdecl std::char_traits<char>::eof(void)" ([EMAIL PROTECTED]@[EMAIL PROTECTED]@@SAHXZ) already defined in OpenThreadsWin32d.lib(Win32Thread.obj) 9>msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: int __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::sputc(char)" ([EMAIL PROTECTED]@[EMAIL PROTECTED]@std@@@std@@[EMAIL PROTECTED]) already defined in OpenThreadsWin32d.lib(Win32Thread.obj) 9>msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: class std::basic_streambuf<char,struct std::char_traits<char> > * __thiscall std::basic_ios<char,struct std::char_traits<char> >::rdbuf(void)const " ([EMAIL PROTECTED]@[EMAIL PROTECTED]@std@@@std@@[EMAIL PROTECTED] [EMAIL PROTECTED]@std@@@[EMAIL PROTECTED]) already defined in OpenThreadsWin32d.lib(Win32Thread.obj) 9>msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: char __thiscall std::basic_ios<char,struct std::char_traits<char> >::fill(void)const " ([EMAIL PROTECTED]@[EMAIL PROTECTED]@std@@@std@@QBEDXZ) already defined in OpenThreadsWin32d.lib(Win32Thread.obj) 9>msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: int __thiscall std::ios_base::flags(void)const " ([EMAIL PROTECTED]@std@@QBEHXZ) already defined in OpenThreadsWin32d.lib(Win32Thread.obj) 9>msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: int __thiscall std::ios_base::width(void)const " ([EMAIL PROTECTED]@std@@QBEHXZ) already defined in OpenThreadsWin32d.lib(Win32Thread.obj) 9>msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: static unsigned int __cdecl std::char_traits<char>::length(char const *)" ([EMAIL PROTECTED]@[EMAIL PROTECTED]@@[EMAIL PROTECTED]) already defined in OpenThreadsWin32d.lib(Win32Thread.obj) 9>msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: class std::basic_ostream<char,struct std::char_traits<char> > & __thiscall std::basic_ostream<char,struct std::char_traits<char> >::flush(void)" ([EMAIL PROTECTED]@[EMAIL PROTECTED]@std@@@std@@[EMAIL PROTECTED]) already defined in OpenThreadsWin32d.lib(Win32Thread.obj) 9>msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: class std::basic_ostream<char,struct std::char_traits<char> > * __thiscall std::basic_ios<char,struct std::char_traits<char> >::tie(void)const " ([EMAIL PROTECTED]@[EMAIL PROTECTED]@std@@@std@@[EMAIL PROTECTED] [EMAIL PROTECTED]@std@@@[EMAIL PROTECTED]) already defined in OpenThreadsWin32d.lib(Win32Thread.obj) 9>msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: bool __thiscall std::ios_base::good(void)const " ([EMAIL PROTECTED]@std@@QBE_NXZ) already defined in OpenThreadsWin32d.lib(Win32Thread.obj) 9>msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: void __thiscall std::basic_ostream<char,struct std::char_traits<char> >::_Osfx(void)" ([EMAIL PROTECTED]@[EMAIL PROTECTED]@std@@@std@@QAEXXZ) already defined in OpenThreadsWin32d.lib(Win32Thread.obj) 9>msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: void __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::_Lock(void)" ([EMAIL PROTECTED]@[EMAIL PROTECTED]@std@@@std@@QAEXXZ) already defined in OpenThreadsWin32d.lib(Win32Thread.obj) 9>msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: void __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::_Unlock(void)" ([EMAIL PROTECTED]@[EMAIL PROTECTED]@std@@@std@@QAEXXZ) already defined in OpenThreadsWin32d.lib(Win32Thread.obj) 9>libcpmtd.lib(locale0.obj) : error LNK2005: "private: static class std::locale::_Locimp * __cdecl std::locale::_Getgloballocale(void)" ([EMAIL PROTECTED]@std@@[EMAIL PROTECTED]@XZ) already defined in msvcprtd.lib(MSVCP80D.dll) 9>libcpmtd.lib(locale0.obj) : error LNK2005: "private: static class std::locale::_Locimp * __cdecl std::locale::_Init(void)" ([EMAIL PROTECTED]@std@@[EMAIL PROTECTED]@XZ) already defined in msvcprtd.lib(MSVCP80D.dll) 9>libcpmtd.lib(locale0.obj) : error LNK2005: "private: static void __cdecl std::locale::facet::facet_Register(class std::locale::facet *)" ([EMAIL PROTECTED]@[EMAIL PROTECTED]@@CAXPAV123@@Z) already defined in msvcprtd.lib(MSVCP80D.dll) 9>libcpmtd.lib(locale0.obj) : error LNK2005: "public: static void __cdecl std::_Locinfo::_Locinfo_ctor(class std::_Locinfo *,char const *)" ([EMAIL PROTECTED]@std@@[EMAIL PROTECTED]@Z) already defined in msvcprtd.lib(MSVCP80D.dll) 9>libcpmtd.lib(locale0.obj) : error LNK2005: "public: static void __cdecl std::_Locinfo::_Locinfo_dtor(class std::_Locinfo *)" ([EMAIL PROTECTED]@std@@SAXPAV12@@Z) already defined in msvcprtd.lib(MSVCP80D.dll) 9>libcpmtd.lib(ios.obj) : error LNK2005: "private: static void __cdecl std::ios_base::_Ios_base_dtor(class std::ios_base *)" ([EMAIL PROTECTED]@std@@CAXPAV12@@Z) already defined in msvcprtd.lib(MSVCP80D.dll) 9>libcpmtd.lib(ios.obj) : error LNK2005: "public: static void __cdecl std::ios_base::_Addstd(class std::ios_base *)" ([EMAIL PROTECTED]@std@@SAXPAV12@@Z) already defined in msvcprtd.lib(MSVCP80D.dll) 9>libcpmtd.lib(xlock.obj) : error LNK2005: "public: __thiscall std::_Lockit::_Lockit(int)" ([EMAIL PROTECTED]@@[EMAIL PROTECTED]@Z) already defined in msvcprtd.lib(MSVCP80D.dll) 9>libcpmtd.lib(xlock.obj) : error LNK2005: "public: __thiscall std::_Lockit::~_Lockit(void)" ([EMAIL PROTECTED]@@[EMAIL PROTECTED]) already defined in msvcprtd.lib(MSVCP80D.dll) 9>libcpmtd.lib(xdebug.obj) : error LNK2005: "void * __cdecl operator new(unsigned int,struct std::_DebugHeapTag_t const &,char *,int)" ([EMAIL PROTECTED]@std@@[EMAIL PROTECTED]) already defined in msvcprtd.lib(MSVCP80D.dll) 9>libcpmtd.lib(xdebug.obj) : error LNK2005: "void * __cdecl operator new[](unsigned int,struct std::_DebugHeapTag_t const &,char *,int)" ([EMAIL PROTECTED]@std@@[EMAIL PROTECTED]) already defined in msvcprtd.lib(MSVCP80D.dll) 9>libcpmtd.lib(xdebug.obj) : error LNK2005: "struct std::_DebugHeapTag_t const & __cdecl std::_DebugHeapTag_func(void)" ([EMAIL PROTECTED]@@[EMAIL PROTECTED]@XZ) already defined in msvcprtd.lib(MSVCP80D.dll) 9>LIBCMTD.lib(setlocal.obj) : error LNK2005: __configthreadlocale already defined in MSVCRTD.lib(MSVCR80D.dll) 9>LIBCMTD.lib(dbgheap.obj) : error LNK2005: _free already defined in MSVCRTD.lib(MSVCR80D.dll) 9>LIBCMTD.lib(dbgheap.obj) : error LNK2005: __CrtSetCheckCount already defined in MSVCRTD.lib(MSVCR80D.dll) 9>LIBCMTD.lib(stdexcpt.obj) : error LNK2005: "public: __thiscall std::exception::exception(void)" ([EMAIL PROTECTED]@@[EMAIL PROTECTED]) already defined in MSVCRTD.lib(MSVCR80D.dll) 9>LIBCMTD.lib(stdexcpt.obj) : error LNK2005: "public: __thiscall std::exception::exception(char const * const &)" ([EMAIL PROTECTED]@@[EMAIL PROTECTED]@Z) already defined in MSVCRTD.lib(MSVCR80D.dll) 9>LIBCMTD.lib(stdexcpt.obj) : error LNK2005: "public: __thiscall std::exception::exception(class std::exception const &)" ([EMAIL PROTECTED]@@[EMAIL PROTECTED]@@Z) already defined in MSVCRTD.lib(MSVCR80D.dll) 9>LIBCMTD.lib(stdexcpt.obj) : error LNK2005: "public: virtual __thiscall std::exception::~exception(void)" ([EMAIL PROTECTED]@@[EMAIL PROTECTED]) already defined in MSVCRTD.lib(MSVCR80D.dll) 9>LIBCMTD.lib(stdexcpt.obj) : error LNK2005: "public: virtual char const * __thiscall std::exception::what(void)const " ([EMAIL PROTECTED]@std@@UBEPBDXZ) already defined in MSVCRTD.lib(MSVCR80D.dll) 9>LIBCMTD.lib(stdexcpt.obj) : error LNK2005: "public: __thiscall std::bad_cast::bad_cast(char const *)" ([EMAIL PROTECTED]@@[EMAIL PROTECTED]@Z) already defined in MSVCRTD.lib(MSVCR80D.dll) 9>LIBCMTD.lib(stdexcpt.obj) : error LNK2005: "public: __thiscall std::bad_cast::bad_cast(class std::bad_cast const &)" ([EMAIL PROTECTED]@@[EMAIL PROTECTED]@@Z) already defined in MSVCRTD.lib(MSVCR80D.dll) 9>LIBCMTD.lib(stdexcpt.obj) : error LNK2005: "public: virtual __thiscall std::bad_cast::~bad_cast(void)" ([EMAIL PROTECTED]@@[EMAIL PROTECTED]) already defined in MSVCRTD.lib(MSVCR80D.dll) 9>LIBCMTD.lib(_file.obj) : error LNK2005: ___iob_func already defined in MSVCRTD.lib(MSVCR80D.dll) 9>LIBCMTD.lib(lconv.obj) : error LNK2005: _localeconv already defined in MSVCRTD.lib(MSVCR80D.dll) 9>LIBCMTD.lib(tidtable.obj) : error LNK2005: __encode_pointer already defined in MSVCRTD.lib(MSVCR80D.dll) 9>LIBCMTD.lib(tidtable.obj) : error LNK2005: __decode_pointer already defined in MSVCRTD.lib(MSVCR80D.dll) 9>LIBCMTD.lib(dbghook.obj) : error LNK2005: __crt_debugger_hook already defined in MSVCRTD.lib(MSVCR80D.dll) 9>LIBCMTD.lib(crt0dat.obj) : error LNK2005: _exit already defined in MSVCRTD.lib(MSVCR80D.dll) 9>LIBCMTD.lib(crt0dat.obj) : error LNK2005: __exit already defined in MSVCRTD.lib(MSVCR80D.dll) 9>LIBCMTD.lib(crt0dat.obj) : error LNK2005: __cexit already defined in MSVCRTD.lib(MSVCR80D.dll) 9>LIBCMTD.lib(crt0dat.obj) : error LNK2005: __amsg_exit already defined in MSVCRTD.lib(MSVCR80D.dll) 9>LIBCMTD.lib(crt0dat.obj) : error LNK2005: __initterm_e already defined in MSVCRTD.lib(MSVCR80D.dll) 9>Build log was saved at "file://c:\OSG_OP_OT-1.2\OpenSceneGraph\VisualStudio\examples\osgwindows\Win 32\Debug\BuildLog.htm" 9>Example osgwindows - 54 error(s), 0 warning(s) 10>Build log was saved at "file://c:\OSG_OP_OT-1.2\OpenSceneGraph\VisualStudio\examples\osgvolume\Win3 2\Debug\BuildLog.htm" 10>Example osgvolume - 0 error(s), 0 warning(s) Seems like there are unresolved Mutex:: function calls and collisions between different DLLs/Libraries? This kind of stuff is actually my weakest point as a programmer, I could really use some help. Thanks! -Yegor
_______________________________________________ osg-users mailing list [email protected] http://openscenegraph.net/mailman/listinfo/osg-users http://www.openscenegraph.org/
