链接到libusb

Ter*_*ver 3 linker gcc

我知道这是一件非常简单的事情,我会讨厌自己不得不问它,但我的脑袋却因桌面上的反复点击而痛苦不堪.我已经阅读了几十个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
Run Code Online (Sandbox Code Playgroud)

为什么这不正确?其中一个应该有效,我尝试了很多很多变化.

为了完整性,我正在运行Ubuntu 14.04(新的VM安装).

我从源代码(〜/ libusb-1.0.18)构建了libusb:

./configure --disable-udev
make
sudo make install
Run Code Online (Sandbox Code Playgroud)

And*_*ico 9

前导lib和尾随.so由链接器自动填充,因此您不应在命令行上指定.你的命令应该是:

gcc -L/usr/local/lib -o test test.o -lusb-1.0
Run Code Online (Sandbox Code Playgroud)