Hello opensg-users,

I want to report a bug and potential fix which I encountered when trying to 
build OpenSG 1.8 CVS using MSVC9 (Visual Studio 2008 Express). 

The problem is with the explicit template instantiations for the output 
operators which are done via the preprocessor macros OSG_POINT_OUTPUT_OP_INST 
and OSG_VECTOR_OUTPUT_OP_INST in OSGVector.cpp. I guess the way template code 
is instantiated has somehow changed from vc8 to vc9. What I get are multiply 
defined symbols. At every place where the streaming operators are used (e.g. 
the dump routines of BoxVolume, CylinderVolume, ...) I get an "already defined 
here" when linking the OSGVector.obj.

A quick and dirty fix for me was to brace the template instantiations in 
OSGVector.cpp with a #ifndef WIN32. I know that's no clean solution, but 
omitting them makes the code compile. Maybe you can come up with a cleaner 
solution, like differing between MS compiler versions, or maybe including the 
declarations of the operators defined in OSGVector.cpp everywhere they are used.

Thanks,
Patric

------------------------------------------------------------------------------
Come build with us! The BlackBerry® Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9-12, 2009. Register now!
http://p.sf.net/sfu/devconf
_______________________________________________
Opensg-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensg-users

Reply via email to