我知道这是如此简单的事情,我会恨自己不得不问它,但我的头是痛苦的重复点击台式机。我已经阅读了数十个堆栈溢出和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(新的VM安装)。
我是从源代码(~/libusb-1.0.18)构建libusb的:
./configure --disable-udev
make
sudo make install发布于 2014-05-24 02:03:57
引导的lib和尾随的.so由链接器自动填充,因此您不应该在命令行中指定任何一个。你的命令应该是:
gcc -L/usr/local/lib -o test test.o -lusb-1.0https://stackoverflow.com/questions/23840108
复制相似问题