Libusb undefined reference to
Ich versuche bis libusb-API auf meinem OS. Ich heruntergeladenen libusb-api auf libusb.org. Ich folgte der standard-Installationsprozedur:
cd into directory
./configure
make
make check //without errors
make install
Dann startete ich Eclipse C/C++ und kopiert code aus dem tutorial im internet gefunden. Aber wenn man versucht, es zu bauen, bekam ich folgende Ausgabe:
main.cpp:(.text+0x19): undefined reference to `libusb_init'
main.cpp:(.text+0x76): undefined reference to `libusb_set_debug'
main.cpp:(.text+0x8a): undefined reference to `libusb_get_device_list'
main.cpp:(.text+0x136): undefined reference to `libusb_free_device_list'
main.cpp:(.text+0x142): undefined reference to `libusb_exit'
/tmp/ccOWJGwe.o: In function `printdev(libusb_device*)':
main.cpp:(.text+0x162): undefined reference to `libusb_get_device_descriptor'
main.cpp:(.text+0x28a): undefined reference to `libusb_get_config_descriptor'
main.cpp:(.text+0x4d4): undefined reference to `libusb_free_config_descriptor'
collect2: ld returned 1 exit status
Habe ich libusb.so in /lib und auch ich habe usb.h in /usr/local/include und den link für die .so und libusb.eine in /usr/local/lib.
Auch das #include im code korrekt ist.
Ich weiß, dass problem ist in linker-aber ich, irgendwie, nicht damit es funktioniert 🙂
Ich bin mit Fedora 15 Betriebssystem-und gcc-4.6.0 20110603 (Red Hat 4.6.0-10) version compiler.
Was konnte ich also tun, um diese Undefinierte Referenzen? Vielen Dank für die Hilfe 🙂
- Bitte finden Sie unter diesem link ... bei mir hat es geklappt. stackoverflow.com/questions/10059146/gcc-libm-not-working
- Sehen Sie bitte den nächsten link, bei mir hat es geklappt stackoverflow.com/questions/10059146/gcc-libm-not-working
Du musst angemeldet sein, um einen Kommentar abzugeben.
müssen Sie die library-linker-flag für die Kompilierung in der linker,
Sie können die ganze Liste in der Konsole ausführen
Diese sind die Bibliotheken, die Sie auf Ihrem system installiert haben und man muss link gegen diejenigen, die Sie verwenden möchten.
also in deinem Beispiel ist es libusb, damit Sie
sollte es sein, die Ausgabe
oder
Dies gibt Ihnen die Flagge, die Sie haben zu passieren, um den linker. z.B.
Dann Bearbeiten Sie die Konfiguration des Projektes und die Suche nach den linkerflags, es soll ein textfield für die, die irgendwo in den buildoptions. ich bin mir nicht ganz sicher, wo es zu finden, aber googeln Sie vorgeschlagen:
Nachdem Sie es gefunden haben, fügen Sie einfach die linker-flag in den textfield-und Sie sollten in Ordnung sein.
BEARBEITEN
da meine Antwort die akzeptiert man, habe ich auch noch die andere Flagge, die zu funktionieren scheint, für eine Menge Leute.
Habe ich das gleiche problem. Aber ich war in der Lage, es zu lösen, indem hinzufügen '-lusb-1.0' für den linker.
e.g : g++ - myfile.cpp -lusb-1.0
Was ist deine linker-Kommandozeile? Sie müssen
-lusb
in der Verknüpfung-Befehl, nur dass der header enthalten, wird nicht funktionieren.Ich nicht mit Eclipse C/C++, aber ich bin ziemlich sicher, der Grund ist der gleiche, das ich vor einiger Zeit beim einrichten eines C-Projekts in Netbeans.
Es ist nicht genug, um die
#include
im code und die Bibliothek an der richtigen Stelle - Sie müssen auch sagen, Eclipse, wo man nach Ihnen sucht und wie Sie zu benutzen sind. Dieses turorial zeigt Ihnen, wie Sie Eclipse.ld
undefined reference-Fehler, nicht eingcc
fehlenden Header-Fehler./usr/include
standardmäßig, also Header sind fast nie ein problem.