Boost logo

Boost-Build :

Subject: [Boost-build] LIB without PDB: LNK4099 on MSVC
From: VoidEx (VoidEx_at_[hidden])
Date: 2008-10-11 14:20:52


Hello,

I am using xerces-c library:

 

lib xercesc : : <file>$(XERCESC_ROOT)/lib/xerces-c_3D.lib <link>shared
<variant>debug ;

lib xercesc : : <file>$(XERCESC_ROOT)/lib/xerces-c_3.lib <link>shared
<variant>release ;

lib xercesc : : <file>$(XERCESC_ROOT)/lib/xerces-c_static_3D.lib
<link>static <variant>debug : : <define>XERCES_STATIC_LIBRARY
<linkflags>"/NODEFAULTLIB:libcmtd.lib" ;

lib xercesc : : <file>$(XERCESC_ROOT)/lib/xerces-c_static_3.lib <link>static
<variant>release : : <define>XERCES_STATIC_LIBRARY
<linkflags>"/NODEFAULTLIB:libcmt.lib" ;

 

Then I link with it

 

unit-test serialization-test : serialization-test.cpp ../system
../ext//xercesc ../preferences ;

 

And i got many LNK4099 warnings in static debug version, because i don't
have PDB.

MSDN says, that i must remove /DEBUG linker option and generate PDB with
/PDB option.

I tried to place "<debug-symbols>off" (and "<runtime-debugging>off" too) in
usage-requirements of lib xerces, in serialization-test, but i always got
this warnings.

I tried to make target:
lib xercesc_deb : : <file>$(XERCESC_ROOT)/lib/xerces-c_static_3D.lib
<link>static /*various options: debug-symbols off, variant debug etc*/ : :
<define>XERCES_STATIC_LIBRARY <linkflags>"/NODEFAULTLIB:libcmtd.lib" ;

and use it, but i have no result

 

It will be perfect to modify lib xerces only, but ok if i must rewrite all
targets, that uses it.

Is it possible?

 

- voidex

 



Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk