Frage

Ich baue eine Anwendung als eine Bibliothek, sondern um sicherzustellen, dass ich die Ausgabe bekommen, Ich mag würde, ich schaltete es über eine exe zu erzeugen. Sobald ich tat, habe ich mehrere Fehler über nicht aufgelöste externe Symbole.

Zuerst dachte ich, dass ich nicht einen Weg zur 3rd-Party-Bibliothek eingestellt habe, dass ich Referenzierung, so dass ich hinzugefügt, um den Ordner auf meine Pfadvariablen und sogar es zu meinem umfassen, Referenzen und Quelldateien, nur um sicherzustellen, dass ich alle Wege hatte.

ich immer noch den Fehler:

  

Fehler LNK2019: nicht aufgelöstes externes   Symbol „__declspec (dllimport) public:   Statische Leere       __cdecl xercesc_2_8 :: XMLPlatformUtils :: Initialize (char   const * const char const *   const, Klasse xercesc_2_8 :: PanicHandler   * Const, Klasse xercesc_2_8 :: MemoryManager *   const, bool)“   (__Imp_? Initialisieren @ XMLPlatformUtils @ @@ xercesc_2_8 SAXQBD0QAVPanicHandler @ 2 @ @ QAVMemoryManager 2 @ @ _N Z)   verwiesen in Funktion „Leere __cdecl   xsd :: cxx :: xml :: initialize (void)“   (? Initialisieren @ xml @ cxx @ xsd @@ YAXXZ)

Der Grund, dass ich es hier bin gefragt ist, weil in Visual Studio, wenn ich es als eine Bibliothek gebaut, ich diese Fehler nicht bekommen haben, sondern als DLL und exe, das tue ich.

jemand irgendwelche Gedanken haben?

War es hilfreich?

Lösung

Der Aufbau einer Bibliothek, der Linker muss nicht importiert Symbole lösen. Das geschieht nur, wenn es beginnt Objektdateien verknüpfen und Bibliotheken zusammen.

Das ist, warum nur Sie sehen den Fehler gestartet, wenn eine ausführbare Datei zu bauen.

Ja, in VC2008 (und 2005, wenn ich mich nicht gut), verwenden Sie die Projekteigenschaften -> Linker -> Eingang -> Zusätzliche Abhängigkeiten. Die Bibliotheken müssen Sie sind durch Leerzeichen getrennt werden (ungerade, he?)

Good Luck!

Andere Tipps

Sie müssen auch angeben, dass Sie insbesondere gegen diese Bibliothek verknüpfen wollen. Die Verbindungspfade geben lediglich den Linker, wo die Daten, die Sie finden müssen, ist nicht das, was Sie zu suchen. Sie müssen auch angeben, dass Sie gegen die Bibliothek eine Verknüpfung in Frage (xerces?).

Leider, ich weiß nicht, wie dies in MSVC zu spezifizieren, aber es ist wahrscheinlich irgendwo unter ‚Linkers Optionen‘.

Wie @coppro sagte, müssen Sie angeben, dass Sie mit dieser Bibliothek verknüpfen möchten. Wenn Sie eine EXE-Datei erstellen oder DLL wird ein Linker laufen, und es muss alle Funktionen finden Sie verwenden, sondern eine Bibliothek zu bauen, ist der Bibliothekar laufen, und es muss nicht alle Funktionsreferenzen lösen (aber wenn Sie verwenden, dass lib in einer EXE-Datei, die Sie haben werden, wieder ein).

So gehen zum Projektoptionen Linkeroptionen, Input, und listet die Bibliothek, die die fehlende Funktion definiert (xerces.lib?) Unter Weitere Bibliothek Pfade. Sie könnten ihre Lage unter Weitere Bibliothek Pfade hinzufügen müssen.

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