GNU/Linux >> Linux Esercitazione >  >> Linux

Libusb riferimento indefinito a

devi impostare il flag del linker della libreria per la compilazione nel linker, puoi ottenere un elenco completo nella console eseguendo

pkg-config --list-all

Queste sono le librerie che hai installato sul tuo sistema e devi collegarti a quelle che vuoi usare. Quindi nel tuo esempio è libusb quindi fai

pkg-config --libs libusb

dovrebbe esserci l'output

-lusb

o

-lusb-1.0

Questo ti dà il flag che devi passare al linker. ad esempio

g++ myfile.cpp -lusb[-1.0]

Quindi modifichi la configurazione del progetto e cerchi i linkerflags, dovrebbe esserci un campo di testo per quello da qualche parte nelle buildoptions. non sono del tutto sicuro di dove trovarlo, ma cercarlo su Google ha suggerito:

Project -> Properties -> C/C++
Build -> Miscellaneous -> flags

Dopo averlo trovato, aggiungi semplicemente il flag del linker nel campo di testo e dovresti essere a posto.

MODIFICA

poiché la mia risposta è quella accettata, ho aggiunto anche l'altro flag che sembra funzionare per molte persone.


Qual è la riga di comando del tuo linker? Devi avere -lusb nel comando di collegamento; includere solo l'intestazione non funzionerà.


Ho affrontato lo stesso problema. Ma sono riuscito a risolverlo aggiungendo '-lusb-1.0' al linker.

es :g++ miofile.cpp -lusb-1.0


Linux
  1. 10 pratici comandi di sistema:un riferimento

  2. Errore di compilazione MPI:riferimento non definito a `sqrt' – Risolto

  3. Errore Linux c++:riferimento non definito a 'dlopen'

  4. Significato del flag -pthread durante la compilazione

  5. crt1.o:Nella funzione `_start':- riferimento non definito a `main' in Linux

Testa le app GNOME su questa piattaforma di riferimento Linux

MySQL:Riferimento rapido per i comandi di base

Il comando dpkg in Linux:un riferimento per principianti

C++ Boost:riferimento non definito a boost::system::generic_category()

riferimento indefinito al simbolo errore '_ZN5boost6system15system_categoryEv'

Cos'è il linker d'oro?