Problemas al usar make - usb.h no encontrado

2

Estoy tratando de usar make para construir un binario a partir de un código fuente para un programa que necesito.

Enlace a la fuente: enlace

Requiere usb.h, que parece ser parte de usblib-compat. Instalé este último por brew install usblib-compat . Pero aún no se puede ver usb.h, aunque sé dónde está (en / usr / local / Cellar / usblib-compat / version / include).

Leí mucho a través de Internet e intenté establecer muchas variables de entorno, pero no tuve éxito. ¿Alguna idea?

ACTUALIZACIÓN

Después de muchas pruebas, he progresado de alguna manera. Es decir, el archivo config.mk se lee claramente durante el proceso de creación, aunque debo admitir que no está claro cómo se hace esto; De todos modos, noté dos líneas comentadas:

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

Los comenté y ahora sucede algo: se encuentra el usb.h. Creo que la primera de estas definiciones de variables le dice al compilador dónde buscar los archivos de encabezado, y la segunda le dice al vinculador dónde debe buscar las bibliotecas, pero otra vez no está del todo claro para mí.

En cualquier caso, todavía tengo problemas. Es decir, el proceso de creación genera dos advertencias y un error, y luego se detiene:

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") )

Parece que este programa es difícil de portar de Linux a Mac, aunque creo que debería ser portátil. Si alguien tiene alguna idea sobre qué hacer (aparte de ejecutar una distribución de Linux ...), sería muy apreciado.

    
pregunta Enrico 07.03.2017 - 20:43

1 respuesta

4

No has dicho qué programa quieres compilar, por lo que es imposible dar consejos específicos.

El consejo general es mirar los archivos README, la documentación y / o el Makefile del programa para conocer las formas de especificar la ruta de inclusión.

Por ejemplo, puede editar el Makefile directamente para identificar dónde se especifica la ruta de inclusión. En muchos proyectos, el programa es compilado por gcc / llvm y las rutas de inclusión se especifican usando argumentos "-I" al compilador.

Puede encontrar ese lugar en el Makefile y agregar:

  -I/usr/local/Cellar/usblib-compat/version/include
    
respondido por el jksoegaard 07.03.2017 - 21:01

Lea otras preguntas en las etiquetas