Libusb undefinierter Verweis auf

8

Ich versuche, libusb API auf meinem Betriebssystem einzurichten. Ich habe libusb api auf libusb.org heruntergeladen. Ich folgte dem Standard-Installationsverfahren:

%Vor%

Dann habe ich Eclipse C / C ++ gestartet und Code aus dem Tutorial aus dem Internet kopiert. Aber beim Versuch, es zu bauen, bekam ich folgende Ausgabe:

%Vor%

Ich habe libusb.so in / lib und auch ich habe usb.h in / usr / local / include und den Link für die .so und libusb.a in / usr / local / lib.

Auch der #include innerhalb des Codes ist korrekt.

Ich weiß, dass das Problem im Linker ist, aber ich kann es irgendwie nicht funktionieren lassen:)

Ich benutze Fedora 15 Betriebssystem und gcc 4.6.0 20110603 (Red Hat 4.6.0-10) Version Compiler.

Was kann ich tun, um diese undefinierten Referenzen aufzulösen? Vielen Dank für die Hilfe:)

    
Reshi 13.08.2011, 12:42
quelle

4 Antworten

14

Sie müssen das Linker-Flag für die Kompilation im Linker setzen, Sie können eine vollständige Liste in der Konsole abrufen, indem Sie

ausführen %Vor%

Dies sind die Bibliotheken, die Sie auf Ihrem System installiert haben und die Sie mit den zu verwendenden Bibliotheken verknüpfen müssen. In deinem Beispiel ist es libusb, also tust du

%Vor%

sollte die Ausgabe sein

%Vor%

Dies gibt Ihnen die Flagge, die Sie an den Linker übergeben müssen.

Dann editierst du die Konfiguration des Projekts und suchst nach den Linkerflags, da sollte irgendwo in den Buildoptionen ein Textfeld stehen. ich bin nicht ganz sicher, wo ich es finden kann, aber googeln dafür vorgeschlagen:

%Vor%

Nachdem Sie es gefunden haben, fügen Sie einfach das Linker-Flag in das Textfeld ein und Sie sollten in Ordnung sein.

    
Xtroce 13.08.2011, 12:58
quelle
21

Ich hatte das gleiche Problem. Aber ich konnte es lösen, indem ich dem Linker '-lusb-1.0' hinzufügte.

z. B.: g ++ myfile.cpp -lusb-1.0

    
user3240675 27.01.2014 13:50
quelle
1

Was ist Ihre Linker-Befehlszeile? Sie müssen -lusb im Verknüpfungsbefehl haben; nur die Kopfzeile enthalten wird nicht funktionieren.

    
Delan Azabani 13.08.2011 12:47
quelle
1

Ich benutze Eclipse C / C ++ nicht, aber ich bin ziemlich sicher, dass der Grund derselbe ist, dem ich vor einiger Zeit begegnet bin, als ich ein C-Projekt in Netbeans eingerichtet habe.

Es reicht nicht aus, dass #include in Ihrem Code und die Bibliothek am richtigen Ort ist - Sie müssen Eclipse auch mitteilen, wo Sie nach ihnen suchen und wie Sie sie verwenden. Dieses turorial zeigt Ihnen, wie Sie es in Eclipse einrichten.

    
emboss 13.08.2011 12:48
quelle

Tags und Links