1

我喜欢用 libusb 做 USB 编程。我安装它使用

$ apt-get install libusb-1.0

接着

$ apt-get install libusb-1.0-0-dev

但是在我尝试在 c 代码中使用它之后,出现了编译器错误。

#include <stdio.h>

#include <libusb-1.0/libusb.h>

int main(){
  usb_init(NULL);
  return 0;
} 

编译器错误是:

**/tmp/ccgCZXTu.o:在函数“main”中:
test.c:(.text+0xf): undefined reference to `usb_init'
collect2:错误:ld 返回 1 个退出状态**

为什么会这样?

4

3 回答 3

4

这是一个链接器错误,您没有告诉编译器您的代码需要与 libusb 库链接。

仅仅#include在 C 中是不够的,它所做的只是提供讨论库代码所需的声明,它不以任何方式引用代码本身。

添加$(pkg-config --libs libusb)到您的 GCC 命令行。

于 2013-02-11T15:54:37.247 回答
0

考虑使用

pkg-config --libs libusb-1.0

对于 libusb-1.0

于 2014-05-02T18:50:44.277 回答
-2

您可以将其包括为:

#include </usr/local/include/libusb-1.0/libusb.h>  
于 2013-06-05T13:52:04.653 回答