Frage

So habe ich ein Visual Studio 2010-Projekt, dass Anwendungen externe Bibliotheken und um es zu bekommen zu kompilieren, ohne LNK2005 ich mit der Reihenfolge der Bibliotheken in den Linker-Einstellungen zu jonglieren arround hatte.

habe ich es in Ordnung im Release-Modus zu kompilieren, aber aus welchen Gründen auch immer ich es nicht schaffen, um es ohne LNK-Fehler in Debug zu kompilieren zu erhalten.

Gibt es keine Möglichkeit, im Allgemeinen LNK2005 ignorieren und den Linker sagen, einfach verwenden, was er ersten Begegnungen?

Danke!

// edit: hier sind einige der Fehler Ausgang des jeweiligen Problems. aber ich bereits versucht, dass mit jeder Lösung auf verschiedene Weise zu lösen mir verschiedene Linker Probleme geben. also ich suche allgemeine Lösung LNK2005 zu ignorieren

Error 7 error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (??0type_info@@AAE@ABV0@@Z) already defined in Libcmtd.lib(typinfo.obj) ...\msvcprtd.lib(MSVCP100D.dll)

Error 8 error LNK2005: "private: class type_info & __thiscall type_info::operator=(class type_info const &)" (??4type_info@@AAEAAV0@ABV0@@Z) already defined in Libcmtd.lib(typinfo.obj) ...\msvcprtd.lib(MSVCP100D.dll)

Error 9 error LNK2005: _exit already defined in Libcmtd.lib(crt0dat.obj) ...\msvcprtd.lib(MSVCP100D.dll)

Error 10 error LNK2005: __invalid_parameter already defined in Libcmtd.lib(invarg.obj) ...\msvcprtd.lib(MSVCP100D.dll)

...

Error 37 error LNK1169: one or more multiply defined symbols found

War es hilfreich?

Lösung

Sie können versuchen, die Linker-Option / FORCE (Force-Dateiausgabe im Linkers Registerkarte Allgemein die Projekteigenschaften). Dadurch wird der Linker zwingen, eine exe zu erstellen / dll selbst wenn solche Fehler auftreten. Aber sind Sie dann nach links, um herauszufinden, ob diese exe Arbeit überhaupt tut oder sogar richtig. Schließlich würde ich diese Strategie nicht empfehlen.

Linker Fehler können manchmal mühsam sein zu lösen, aber in der Regel hat es nur getan werden nach der Migration oder ein Projekt aufzubauen. Dies kann eine ganze Weile dauern -. Es mir manchmal mehr nahm dann einen Tag, aber es sollte richtig gemacht werden

Andere Tipps

Sie müssen absolut nicht Linker Fehler ignorieren, je Ein Linker Sie sagt, dass es sich um ein Symbol zu verwechseln ist, die an mehreren Stellen definiert ist - wo sollte es von der Definition nehmen? Wollen Sie wirklich es willkürlich sein? Was ist, wenn Sie Ihren Code ändern, und der Linker entscheidet zufällig die andere Definition zu nehmen, die Ihren Code plötzlich brechen könnte?

Anstatt das Werkzeug des Kampfes, korrigieren Sie den Code so, dass es kompiliert und Links ohne Fehler. Dieser MSDN-Artikel einige Informationen hat es über die Festsetzung, zusammen mit Links für weitere Informationen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top