Problemi nell'utilizzo di make - usb.h non trovato

2

Sto cercando di usare make per creare un binario da un codice sorgente per un programma di cui ho bisogno.

Link all'origine: link

Richiede usb.h, che sembra essere parte di usblib-compat. Ho installato quest'ultimo da brew install usblib-compat . Ma ancora usb.h non può essere visto, anche se so dov'è (sotto / usr / local / Cellar / usblib-compat / version / include).

Ho letto molto su Internet e ho cercato di impostare molte variabili d'ambiente, ma senza successo. Qualche idea?

UPDATE

Dopo molte prove, ho progredito in qualche modo. Vale a dire, il file config.mk è chiaramente letto durante il processo di creazione, anche se devo ammettere che non mi è chiaro come sia fatto; comunque, ho notato due righe commentate:

CPPFLAGS += -I/usr/local/include
LDFLAGS += -L/usr/local/lib -Wl,-R/usr/local/lib

Li ho decommentati e ora succede qualcosa: viene trovato il usb.h. Penso che la prima di queste definizioni di variabili dica al compilatore dove cercare i file header, e la seconda dice al linker dove cercare le librerie - ma ancora una volta non mi è completamente chiaro.

In ogni caso, ho ancora problemi. Vale a dire, il processo di fabbricazione emette due avvertimenti e un errore, quindi si arresta:

usb-device.c:90:57: warning: unused parameter 'udev' [-Wunused-parameter]
static void usb_reattach_kernel_driver(usb_dev_handle * udev, int interface) {
                                                        ^
usb-device.c:90:67: warning: unused parameter 'interface' [-Wunused-parameter]
static void usb_reattach_kernel_driver(usb_dev_handle * udev, int interface) {

usb-device.c:324:13: error: use of undeclared identifier 'RTLD_DEFAULT' if ( dlsym(RTLD_DEFAULT, "libusb_init") )

Sembra che questo programma sia difficile da trasferire da Linux a Mac, anche se penso che dovrebbe essere portatile. Se qualcuno ha qualche idea su cosa fare (a parte l'esecuzione di una distribuzione Linux ...), sarebbe molto apprezzato.

    
posta Enrico 07.03.2017 - 20:43
fonte

1 risposta

4

Non hai detto quale programma vuoi compilare, quindi è impossibile dare un consiglio specifico.

Il consiglio generale è di leggere README, documentazione e / o Makefile del programma per i modi in cui specificare il percorso di inclusione.

Ad esempio, puoi modificare direttamente il Makefile per identificare dove viene specificato il percorso di inclusione. In molti progetti il programma è compilato da gcc / llvm e i percorsi di inclusione sono specificati usando gli argomenti "-I" al compilatore.

È possibile trovare quel punto nel Makefile e aggiungere:

  -I/usr/local/Cellar/usblib-compat/version/include
    
risposta data 07.03.2017 - 21:01
fonte

Leggi altre domande sui tag