Компиляция программы LibUSB 0.1 завершается с ошибкой «неопределенная ссылка»

У меня есть небольшая программа на C, которая использует libusb 0.1.

Я уже установил libusb-dev (что в основном означает libusb 0.1: https://packages.ubuntu.com/de/xenial/libusb-dev ) и включил заголовок <usb.h>.

Но компиляция с использованием gcc -Wall -lusb -o te923con te923con.c te923usb.c te923com.c всегда дает сбой. Существует множество неопределенных ссылок, включая usb_find_busses, usb_init и usb_open.

$ gcc -Wall -lusb -o te923con te923con.c te923usb.c te923com.c
/tmp/cc1TRIze.o: In function `find_te923':
te923usb.c:(.text+0x9): undefined reference to `usb_find_busses'
te923usb.c:(.text+0xe): undefined reference to `usb_find_devices'
te923usb.c:(.text+0x13): undefined reference to `usb_get_busses'
/tmp/cc1TRIze.o: In function `te923_handle':
te923usb.c:(.text+0xf9): undefined reference to `usb_init'
te923usb.c:(.text+0x144): undefined reference to `usb_open'
te923usb.c:(.text+0x191): undefined reference to `usb_get_driver_np'
te923usb.c:(.text+0x1ab): undefined reference to `usb_detach_kernel_driver_np'
te923usb.c:(.text+0x1bc): undefined reference to `usb_set_configuration'
te923usb.c:(.text+0x1fe): undefined reference to `usb_claim_interface'
te923usb.c:(.text+0x23d): undefined reference to `usb_set_altinterface'
/tmp/cc1TRIze.o: In function `te923_close':
te923usb.c:(.text+0x2b3): undefined reference to `usb_release_interface'
te923usb.c:(.text+0x2bf): undefined reference to `usb_close'
/tmp/ccxL1A67.o: In function `read_from_te923':
te923com.c:(.text+0x19e): undefined reference to `usb_control_msg'
te923com.c:(.text+0x28b): undefined reference to `usb_interrupt_read'
collect2: error: ld returned 1 exit status
Makefile:5: recipe for target 'te923con' failed
make: *** [te923con] Error 1

Я не понимаю причину этих ошибок. У кого-нибудь есть идеи?

2
задан 23 November 2019 в 13:08

1 ответ

У меня была аналогичная проблема. Я решил это

Вместо

  gcc -lusb -o outfile input.c

Я использовал

  gcc -o outfile input.c -lusb

и это сработало

3
ответ дан 20 July 2020 в 14:25

Другие вопросы по тегам:

Похожие вопросы: