Hi,

Unfortunately I can't offer a solution, but I thought I would mention I have 
come across this exact problem and have also pulled my hair out trying to find 
a solution. This same problem exists when building virtual planet builder, 
linking with osgDB causes the multiply defined symbols. I had no other issues 
building the 3rd party libs and osg with 2010.

The only way I could move forward was to allow multiply defined symbols (as has 
already been mentioned). I agree this seems dangerous and is not  a solution 
but it has allowed me to continue working. So far it hasn't caused any issues 
with my vpb build.

Given you have used the streams extensively without issue and it seems osgDB is 
the source of the trouble, have you had a look to see if there is any 
discernable difference between your code and that in osgDB ?

I would love to find a solution to this.

Cheers,
Brad

From: osg-users-boun...@lists.openscenegraph.org 
[mailto:osg-users-boun...@lists.openscenegraph.org] On Behalf Of Anders Backman
Sent: Friday, 27 August 2010 4:00 PM
To: OpenSceneGraph Users
Subject: Re: [osg-users] OT: VS2010 LNK2005 problem related to ostringstream

I have verified the build mode for all ingoing libraries.

I build all the dependencies myself. Including OSG.

The problem I have (which is OSG related), is that if I build without OSG 
support (no rendering), it all works.
And I still use std::ostringstream and std::stringstream quite extensively...
We still link against OpenThreads (but no rendering).


So only when I link against osg (osg.lib, osgDB.lib, osgText.lib, 
osgShadow.lib, osgViewer.lib osgGA.lib) I get this problem.

I have verified that osg (and OpenThreads) are all built consistently all over 
the field. Release and /MD (MultiThreadedDLL), which is default from CMake.


So I can use/link against OpenThreads.lib, but not OSG...

Rather nasty problem, I'm trying to reduce it, but I'm getting nowhere.
And once again, same settings, same CMake version, same code all over the 
place, and it works in VS2008...

/A

On Thu, Aug 26, 2010 at 8:17 PM, Simon Hammett 
<s.d.hamm...@googlemail.com<mailto:s.d.hamm...@googlemail.com>> wrote:
Ah ok, then next things to check:

Make absolutely sure you aren't mixing up objects & libraries from the 
different builds.
For my projects I include a vc version number in the name, so .vc7.lib/vc7.dll 
& .vc9.lib/.vc9.dll
and I also use the vc version in the name of output & intermediate directory

Then check all the code for any use of

#pragma comment(lib, "libname")

and make sure any preprocessor guards that select different versions have been 
updated to know about vc2010.


On 26 August 2010 18:37, Anders Backman 
<ande...@cs.umu.se<mailto:ande...@cs.umu.se>> wrote:
Well, I have verified that ALL the dependencies Im using are all built with /MD 
and NOT debug.
Im building all of the dependencies for osg and our lib myself, so I got full 
control.

Also, as I wrote before, I have even tried to build our libs using project 
files generated from cmake > vs2008, build with vs2008 ->  works ok.
Open same project files in vs2010 -> problem occurs.
Im using buildscripts to build dependencies, and it all works for vs2008...
No external libraries, everything is built from code.

For VS2010, all the dependencies (including osg 2.8.3) builds/links fine.
But for my libs, I get the linking errors.

Allowing multiple symbols sounds dangerous, and it did not resolve my problem...

/A

On Thu, Aug 26, 2010 at 7:26 PM, Simon Hammett 
<s.d.hamm...@googlemail.com<mailto:s.d.hamm...@googlemail.com>> wrote:

On 26 August 2010 17:35, Anders Backman 
<ande...@cs.umu.se<mailto:ande...@cs.umu.se>> wrote:

<snip>

 CMake defaults to /MD code generation (MultiThreaded). Im using this 
consistently over all my libraries (just double checked to be sure).

Never use that setting unless you know what you are doing.

Change every project to

Multi-threaded Debug DLL (/MDd) for Debug builds and
Multi-threaded DLL (/MD) for Release builds

And it will all start working.

Those Runtime library settings are the number one 'gotch-ya' for Visual studio, 
and Cmake defaulting to them is daft.

--
http://www.ssTk.co.uk

_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org<mailto:osg-users@lists.openscenegraph.org>
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org



_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org<mailto:osg-users@lists.openscenegraph.org>
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org



--
http://www.ssTk.co.uk

_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org<mailto:osg-users@lists.openscenegraph.org>
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org





DISCLAIMER:---------------------------------------------------------------------------
This e-mail transmission and any documents, files and previous e-mail messages
attached to it are private and confidential. They may contain proprietary or 
copyright
material or information that is subject to legal professional privilege. They 
are for
the use of the intended recipient only.  Any unauthorised viewing, use, 
disclosure,
copying, alteration, storage or distribution of, or reliance on, this message is
strictly prohibited. No part may be reproduced, adapted or transmitted without 
the
written permission of the owner. If you have received this transmission in 
error, or
are not an authorised recipient, please immediately notify the sender by return 
email,
delete this message and all copies from your e-mail system, and destroy any 
printed
copies. Receipt by anyone other than the intended recipient should not be 
deemed a
waiver of any privilege or protection. Thales Australia does not warrant or 
represent
that this e-mail or any documents, files and previous e-mail messages attached 
are
error or virus free.
--------------------------------------------------------------------------------------

_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to