KDevelop und extrerne Bibliotheken
-
Hallo
ich bin irgendwie zu blöd dazu. Also ich habe ein C++ Projekt in KDevelop erstellt, das ist in kdevelop/meinprojekt
Ich brauche eine Bibliothek für das Projekt, das liegt in "kdevelop/libusb-0.1.12". Header und .so Bibliothek.Wie kann ich das jetzt in meinem Projekt benutzen?
Also ich hab in ProjectOptions -> Configure Options
in den C++ Preprozessor Flags:-I/home/devent/daten/kdewelop/libusb-0.1.12
und in Linker-Flags:
-L/home/devent/daten/kdewelop/libusb-0.1.12
#include <iostream> #include <iomanip> #include <usbpp.h> using namespace std; int main(void) { USB::Busses buslist; USB::Device *device; list<USB::Device *> hubList; list<USB::Device *>::const_iterator iter;
Die Haader werden gefunden, aber jedesmal kommt der Fehler:
/media/daten/devent/kdewelop/simplekde/src/simplekde.cpp:35: undefined reference to `USB::Busses::Busses()'
Kann mir da jemand helfen?
Edit: bei make wurden keine .so erstellt, sondern libusbpp.la und usbpp.lo
ok habs gelöst, bin halt Eclipse gewöhnt
-
das heißt soviel wie nichtaufgelöstes externes symbol.
Du musst noch deinem linker angeben, dass er die lib linken soll. bis jetzt gibst du ihm nur den pfad zur lib, nicht dass er die auch linken soll.
geht mit
-lusb-0.1.12
-
Mit -L gibst du nur den Pfad an, in dem gesucht wird und mit -l die library die gelinkt werden soll.
Mehr dazu im GCC Handbuch gcc.gnu.org
-
ok, ich hab gedacht das er die Lib selbst heraussucht.
-
wie soll das bitte sinnvoll realisiert werden? Einfach willkürlich die erste Library nehmen, die Symbole enthält die du haben wollen könntest? Neeeeeeee, das wäre ziemlich (schlicht gesagt) beschissen.