Paul Martz wrote:
I have a question on static builds under Win32.
Since the addition of static libraries, I've been a little stumped about how
the OSG examples actually link. If I don't build any static libraries, the
OSG examples link fine; if I build both dynamic and static libraries, all
the examples fail to link with multiply defined symbols.
Upon closer inspection, it appears that none of the examples explicitly link
with the DLL export .lib files, which makes me scratch my head and wonder
how on Earth they were able to link successfully if I had not built the
static libs. Are these examples using some kind magic Win32 implicit
linking?
Assuming this is correct, then that explains why the examples fail to link
when both static and dynamic libraries are present -- the linker is picking
up duplicate symbols from both sets of libraries. Isn't this a problem,
then, for users who might want to build both static and dynamic libraries
and get the examples to link?

There is some VC++ magic that goes on behind the scenes. If a project claims another project as a dependency (for tax purposes, maybe ;), and that other project generates a library, VC++ seems to implicitly link against that library without it being listed in the linker inputs.

Does this answer the question? If not, IM me -- XenonofArcticus on all major IM networks, and we can discuss it more interactively.

Thanks for any clarification,
   -Paul

--
Chris 'Xenon' Hanson aka Eric Hammil | http://www.3DNature.com/ eric at logrus
 "I set the wheels in motion, turn up all the machines, activate the programs,
  and run behind the scenes. I set the clouds in motion, turn up light and 
sound,
  activate the window, and watch the world go 'round." -Prime Mover, Rush.
_______________________________________________
osg-users mailing list
[email protected]
http://openscenegraph.net/mailman/listinfo/osg-users
http://www.openscenegraph.org/

Reply via email to