2 Stimmen

MSVC - C++ - Release-Build fehlgeschlagen - Linker-Fehler

HI,

Wenn ich versuche, meine App im Release-Modus zu erstellen und zu verknüpfen, erhalte ich einen Linker-Fehler:

Fehler 72 Fehler LNK2001: nicht aufgelöstes externes Symbol "public: __thiscall MyModels::MT6::MT6(double)" (??0MT6@MyModels@@QAE@N@Z) C:\Martin\Programing\WoknaTest\WoknaTest\DXForm.obj WoknaTest

Im Debug-Modus funktioniert alles einwandfrei.... was könnte falsch sein?

Gracias

6voto

Peter Huene Punkte 5678

Nach der Tatsache zu urteilen, dass es in der Debug-Konfiguration erfolgreich gebaut wird, wäre mein erster Vorschlag, die zusätzlichen Abhängigkeiten zu überprüfen, die dem Linker bereitgestellt werden. Diese Einstellung würde lauten Additional Dependencies Einstellung unter Project -> Properties -> Configuration Properties -> Linker -> Input . Vergewissern Sie sich, dass diese Einstellung mit der Debug-Konfiguration übereinstimmt, vorausgesetzt, es gibt keine debug-build-spezifischen Bibliotheksnamen.

2voto

NotJarvis Punkte 1257

Ich würde in den Projekteinstellungen überprüfen, ob alle .lib-Includes und dlls sowohl im Release- als auch im Debug-Modus enthalten sind.

Die Lösung für dieses ist wahrscheinlich in den Projekteinstellungen für die Verknüpfung irgendwo (entweder .lib .dll oder Pfad enthält), aber ich kann nicht wirklich sagen Sie genau, wo aus der Info. die Sie zur Verfügung gestellt.

1voto

Corvin Punkte 970

Die wahrscheinlichste Version (vorausgesetzt, Sie haben Ihre Projekteinstellungen nicht manuell bearbeitet) ist, dass Ihr Code auf eine Bibliothek verweist und Sie nicht die Release-Version Ihrer Bibliothek haben. Normalerweise referenziert der Linker Bibliotheken mit dem Suffix "d" für Debug und ohne dieses Suffix für Release.

Zum Beispiel: Sie haben ein Projekt VectorMath in Ihrer Lösung. Das Projekt erstellt standardmäßig eine Bibliothek vectormathd.lib in der Debug-Konfiguration und vectormath.lib in der Release-Konfiguration. Wenn Ihre Abhängigkeiten nicht stimmen und Sie nie eine Release-Version von Vectormath gebaut haben, bauen Sie Ihr Hauptprojekt in Release und es wird nach vectormath.lib suchen, die Sie nicht haben - daher das nicht aufgelöste externe Symbol. Die Lösung wäre, sicherzustellen, dass alle Projekte im Release-Modus gebaut werden, oder die Abhängigkeiten so zu ändern, dass VS dies für Sie erledigt.

0voto

VHanded Punkte 2061

Für mich ist es immer eine dieser 2 Lösungen:

  1. Projekteigenschaften > Konfigurationseigenschaften > Linker > Allgemein, Link Library Dependencies = Ja
  2. Projekteigenschaften > Konfigurationseigenschaften > Linker > Eingabe, Zusätzliche Abhängigkeiten, Bearbeiten. Markieren Sie "Von übergeordneten oder Projekt-Standardwerten erben".

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X