>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/

Reply via email to