Ich richte ein C ++ - Projekt unter Ubuntu x64 mit Eclipse-CDT ein. Ich mache im Grunde genommen eine Hallo-Welt und verbinde mich mit einer kommerziellen Bibliothek von Drittanbietern.
Ich habe die Header-Dateien eingefügt, die mit ihren Bibliotheken verknüpft sind, aber ich erhalte immer noch Linker-Fehler. Gibt es hier andere mögliche Probleme als die offensichtlichen (z. B. bin ich zu 99% sicher, dass ich auf die richtige Bibliothek verlinke).
- Gibt es eine Möglichkeit zu bestätigen, dass die statischen Bibliotheken, mit denen ich verknüpfe, 64-Bit sind?
- Gibt es eine Möglichkeit zu bestätigen, dass die Bibliothek die Klasse (und Methoden) hat, die ich erwarte?
Eclipse sagt:
Gebäudeziel: LinkProblem Aufrufen: GCC C ++ Linker g ++ -L / home / notroot / workspace / somelib-3 / somelib / target / bin -o "LinkProblem" ./src/LinkProblem.o -lsomelib1 -lpthread -lsomelib2 -lsomelib3 ./src/LinkProblem.o: In der Funktion `main ': /home/notroot/workspace/LinkProblem/Debug/../src/LinkProblem.cpp:17: undefinierter Verweis auf `SomeClass :: close () ' ./src/LinkProblem.o: In der Funktion `SomeOtherClass ': /home/notroot/workspace/somelib-3/somelib/include/sql/somefile.h:148: undefinierter Verweis auf `SomeClass :: SomeClass () ' /home/notroot/workspace/somelib-3/somelib/include/sql/somefile.h:148: undefinierter Verweis auf "vtable for SomeOtherClass" /home/notroot/workspace/somelib-3/somelib/include/sql/somefile.h:151: undefinierter Verweis auf `SomeClass :: ~ SomeClass () ' ./src/LinkProblem.o: In der Funktion `~ SomeOtherClass ': /home/notroot/workspace/somelib-3/somelib/include/sql/somefile.h:140: undefinierter Verweis auf "vtable for SomeOtherClass" /home/notroot/workspace/somelib-3/somelib/include/sql/somefile.h:140: undefinierter Verweis auf `SomeClass :: ~ SomeClass () ' /home/notroot/workspace/somelib-3/somelib/include/sql/somefile.h:140: undefinierter Verweis auf `SomeClass :: ~ SomeClass () ' collect2: ld hat 1 Exit-Status zurückgegeben make: *** [LinkProblem] Fehler 1