Gcc 链接到libusb

Gcc 链接到libusb,gcc,linker,Gcc,Linker,我知道这是一件很简单的事情,我会恨自己不得不问它,但我的头是从桌面上反复点击疼痛。我已经阅读了几十篇stackoverflow和google的结果,这些结果表明以下方法应该有效: $ ls /usr/local/lib/libusb* /usr/local/lib/libusb-1.0.a /usr/local/lib/libusb-1.0.so /usr/local/lib/libusb-1.0.so.0.1.0 /usr/local/lib/libusb-1.0.la /usr/

我知道这是一件很简单的事情,我会恨自己不得不问它,但我的头是从桌面上反复点击疼痛。我已经阅读了几十篇stackoverflow和google的结果,这些结果表明以下方法应该有效:

$ ls /usr/local/lib/libusb*
/usr/local/lib/libusb-1.0.a   /usr/local/lib/libusb-1.0.so    /usr/local/lib/libusb-1.0.so.0.1.0
/usr/local/lib/libusb-1.0.la  /usr/local/lib/libusb-1.0.so.0
$ gcc -I ~/libusb-1.0.18/libusb -c test.c
$ gcc -L/usr/local/lib -o test test.o -llibusb
/usr/bin/ld: cannot find -llibusb
collect2: error: ld returned 1 exit status
$ gcc -L/usr/local/lib -o test test.o -llibusb-1.0
/usr/bin/ld: cannot find -llibusb-1.0
collect2: error: ld returned 1 exit status
为什么这不正确?其中一个应该是有效的,我已经尝试了很多,更多的变化

为了完整起见,我正在运行Ubuntu14.04(新的虚拟机安装)

我使用以下代码从源代码(~/libusb-1.0.18)构建libusb:


前导的
和尾随的
。因此
由链接器自动填充,因此您不应该在命令行中指定这两个。您的命令应该是:

gcc -L/usr/local/lib -o test test.o -lusb-1.0
gcc -L/usr/local/lib -o test test.o -lusb-1.0