[osg-users] Potential fix for osgDB MSVC linkage issues (FORCE:MULTIPLE needed)

Sebastian Messerschmidt sebastian.messerschmidt at gmx.de
Mon Aug 8 01:52:50 PDT 2016


Hi James,

I haven't dived into the details yet, but I strongly advertise for a 
fix, since this is a great polluter in our build-process too (Visual 
studio doesn't let you filter some warnings).


Cheers
Sebastian

> Hello,
>
> With recent MSVC versions, we’re obliged to use /FORCE_:MULTIPLE, to work around the fact that osgDB.lib includes symbols from std::fstream classes, which then causes conflicts when other object files in a target (eg executable) being linked use <fstream> classes. This slows down linking since incremental linking is disabled, and makes our build output very noisy.
>
> After some discussion, I came up with the following fix:
>
> 	https://github.com/zakalawe/osg/commit/2098c022283f1afeb4bad0ffb4b682b884cc8f32
>
> The idea is to only export the non-inlined symbols from osgDB::ofstream and ::ifstream, but not to export the entire class, since doing so forces MSVC to also export the constructor and destructor for the base class (std::ofstream and std::ifstream).
>
> Since we don’t use the osgDB versions of fstream in FlightGear, I can’t check if this is backwards compatible for other Windows OSG users, but I am hopeful that it is, and hence that this approach could be upstreamed.
>
> Kind regards,
> James
>
> _______________________________________________
> osg-users mailing list
> osg-users at lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org





More information about the osg-users mailing list