Dit probleem gaat over linken in VS.NET (C++ code).
Ik heb twee projecten, een waarvan de code een .lib op moet leveren, en een die de .lib gebruikt om zijn functionaliteit te realiseren.
Nu, als ik het tweede project wil builden dan krijg ik tijdens het linken meerdere "multiply defined symbols"-errors met symbolen uit de C runtime library (in dit geval de debug-versie, dus "msvcrtd.lib").
Ik heb geprobeerd het eerste project (die de .lib oplevert) te genereren met /NODEFAULTLIB:"msvcrtd.lib", maar ik blijf de symbool-conflicten houden. Heeft iemand enig idee hoe ik deze kan vermijden?
Overigens, als ik de object files uit het eerste project niet als library laat genereren, maar in het tweede project gewoon direct meelink, dan gaat het wel goed. Vreemd...
Het gaat om deze foutmeldingen:
Ik heb twee projecten, een waarvan de code een .lib op moet leveren, en een die de .lib gebruikt om zijn functionaliteit te realiseren.
Nu, als ik het tweede project wil builden dan krijg ik tijdens het linken meerdere "multiply defined symbols"-errors met symbolen uit de C runtime library (in dit geval de debug-versie, dus "msvcrtd.lib").
Ik heb geprobeerd het eerste project (die de .lib oplevert) te genereren met /NODEFAULTLIB:"msvcrtd.lib", maar ik blijf de symbool-conflicten houden. Heeft iemand enig idee hoe ik deze kan vermijden?
Overigens, als ik de object files uit het eerste project niet als library laat genereren, maar in het tweede project gewoon direct meelink, dan gaat het wel goed. Vreemd...
Het gaat om deze foutmeldingen:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| AddInBase.lib(AddIn.obj) : error LNK2005: _DllMain@12 already defined in LIBCD.lib (dllmain.obj) msvcrtd.lib(MSVCR70D.dll) : error LNK2005: __CrtDbgReport already defined in LIBCD.lib(dbgrpt.obj) msvcrtd.lib(ti_inst.obj) : error LNK2005: "private: __thiscall type_info::type_info (class type_info const &)" (??0type_info@@AAE@ABV0@@Z) already defined in LIBCD.lib(typinfo.obj) msvcrtd.lib(ti_inst.obj) : error LNK2005: "private: class type_info & __thiscall type_info::operator=(class type_info const &)" (??4type_info@@AAEAAV0@ABV0@@Z) already defined in LIBCD.lib(typinfo.obj) LIBCD.lib(crt0init.obj) : warning LNK4098: defaultlib 'msvcrtd.lib' conflicts with use of other libs; use /NODEFAULTLIB:library Debug/MyAddIn.dll : fatal error LNK1169: one or more multiply defined symbols found |