【发布时间】:2018-07-02 10:40:57
【问题描述】:
我正在尝试编译一段使用 libusb 的代码:
#include <stdio.h>
#include <libusb-1.0/libusb.h>
#include <assert.h>
int main(void) {
libusb_context *context = NULL;
int rc = 0;
rc = libusb_init(&context);
assert(rc == 0);
libusb_exit(context);
return 0;
}
使用gcc -lusb -lusb-1.0 sample.c -o sample 编译时出现以下错误:
/tmp/ccr65JBT.o: In function `main':
sample.c:(.text+0x2e): undefined reference to `libusb_init'
sample.c:(.text+0x62): undefined reference to `libusb_exit'
collect2: error: ld returned 1 exit status
为了确保 libusb 在我的系统上可用:
raven@enforcer:~/sample$ pkg-config --libs libusb-1.0
-lusb-1.0
raven@enforcer:~/sample$ pkg-config --libs libusb
-lusb
我正在运行带有 gcc 7.3.0-16ubuntu3 的 Ubuntu 18.04,如何修复?
【问题讨论】:
-
尝试将库放在命令行中的 .c 文件之后
标签: c gcc libusb libusb-1.0