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


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, david.abrahams at, gregod at, cpdaniel at, john at