VS 2010 Linker Problem beim einbinden von Third Party Bibliotheken
-
Moin zusammen,
ich kämpfe seit Stunden mit einem eigentlich trivialen Problem und hab die Hoffnung, dass mir hier jemand sagen kann, was ich übersehe...
Der Quellcode in meinem Testbeispiel ist sehr übersichtlich
// Xerces header #include <xercesc/util/PlatformUtils.hpp> int main(int argc, char* argv[]) { xercesc::XMLPlatformUtils::Initialize(); return 0; }
Um die Bibliothek und Includes Verfügbar zu machen habe ich in den Projekteinstellungen folgende Schritte unternommen:
1. zusätzliche Includeverzeichnisse hinzugefügt (sonst klappt kompilieren ja nicht) (unter C++, Allgemein)
2. zusätzliche Bibliotheksverzeichnisse um den Xerces Pfad erweitert (Unter Linker, allgemein. Die Optionen darunter stehen standardmäßig auf ja/nein)
3. Die Xercesbibliothek ist expilizit unter Linter/Eingabe angegeben.Irgendwie sehe ich gerade nur 2 Erklärungen. Entweder ich hab in den Linkereinstellungen eine total dämliche Sache übersehen oder die Verwendete Lib Datei passt nicht zu den verwendeten Includes und Routinen...
Bin für jeden Lösungshinweis schon jetzt sehr dankbar
-
Wo ist der Fehler?
-
Sorry, wusste das ich etwas vergessen habe. Hier die Fehlermeldung:
1>TestApp.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: static void __cdecl xercesc_3_1::XMLPlatformUtils::Initialize(char const * const,char const * const,class xercesc_3_1::PanicHandler * const,class xercesc_3_1::MemoryManager * const)" (__imp_?Initialize@XMLPlatformUtils@xercesc_3_1@@SAXQBD0QAVPanicHandler@2@QAVMemoryManager@2@@Z)" in Funktion"main".
1>TestApp.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: static char const * const xercesc_3_1::XMLUni::fgXercescDefaultLocale" (__imp?fgXercescDefaultLocale@XMLUni@xercesc_3_1@@2QBDB)".
-
Scheint, dass die Library unter den Linker Optionen nicht angegeben ist. Zumindest nicht die Library in der diese Symbol liegen müssten.
-
So, es geht weiter...
Nachdem sich gezeigt hat, dass es die falsche Bibliothek war bin ich nach einigen anderen Problemen weiter gekommen und häng jetzt an der nächsten Ecke..
Ich portiere gerade eine Linuxentwicklung nach Windows und die Entwickler haben sich darauf geeinigt VS2010 zu verwenden. Die Kompiler und Linkerprobleme sind jetzt vom Tisch abgesehen von:
MSVCRTD.lib(crtexew.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_WinMain@16" in Funktion "___tmainCRTStartup"
Die Projekteinstellungen stehen auf:
Anwendung (.exe)
Windows Standardbibliotheken verwenden (also kein MFC)
MachineX86Ich hab das Gefühl, dass der Entrypoint für die Anwendung nicht auf das vorhandene main() gesetzt wird. Allerdings habe ich gerade keine Ahnung, wie ich den Fehler beheben kann
-
Du hast anscheinend in den Linker Optionen gesagt, dass Du eine Windows Anwednung möchtest und keine Console.
Stell dies um...
-
... und alle Probleme sind gelöst. Vielen Dank