All the libraries compile now but I get problems compiling applications. I have traced it down to the usage of defines like OSG_SYSTEM_EXPIMP_TMPL in OSGSystemDef.h.
Here is the rundown: The code in OSGSystemDef.h look like: #if defined(WIN32) && defined(OSG_BUILD_DLL) # ifdef OSG_COMPILESYSTEMLIB # define OSG_SYSTEM_DLLMAPPING __declspec(dllexport) # define OSG_SYSTEM_EXPIMP_TMPL # else # define OSG_SYSTEM_DLLMAPPING __declspec(dllimport) # define OSG_SYSTEM_EXPIMP_TMPL extern # endif #else #define OSG_SYSTEM_DLLMAPPING #endif As you can see, when building a DLL OSG_SYSTEM_EXPIMP_TMPL is defined so either nothing or extern. But with compiling an application, it doesn't get defined to anything. This is a problem for code that uses it. For example in OSGSceneFileHandler.h there is code like this: #if defined(WIN32) # if !defined(OSG_COMPILE_SCENEFILEHANDLER) OSG_SYSTEM_EXPIMP_TMPL template class OSG_SYSTEM_DLLMAPPING SingletonHolder<SceneFileHandlerBase>; # endif #endif (note: the OSG_COMPILE_SCENEFILEHANDLER is defined only in OSGSceneFileHandler.cpp so the normal case is to include this line of code when including the header) The compile horks on this because OSG_SYSTEM_EXPIMP_TMPL doesn't mean anything to it. I am guessing that what we want is to have it defined as extern by default when we are on windows. On a side note, I would also expect that on windows we would want to use dllimport by default as well, but maybe I am missing something. I would expect the code to look more like: #if defined(WIN32) //&& defined(OSG_BUILD_DLL) # ifdef OSG_COMPILESYSTEMLIB # define OSG_SYSTEM_DLLMAPPING __declspec(dllexport) # define OSG_SYSTEM_EXPIMP_TMPL # else # define OSG_SYSTEM_DLLMAPPING __declspec(dllimport) # define OSG_SYSTEM_EXPIMP_TMPL extern # endif #else #define OSG_SYSTEM_DLLMAPPING #define OSG_SYSTEM_EXPIMP_TMPL #endif But things work for the configure build, so what am I missing? -Allen ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Opensg-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/opensg-users
