libusb的相关问题

来源:互联网 发布:手机天气预报软件排行 编辑:程序博客网 时间:2024/05/20 16:13
由于在通信过程中使用了libusb,并且在其中也遇到了不少的问题,因此记录下来

首先,我们需要下载相关的软件包:https://sourceforge.net/projects/libusb/files/
在这里,我使用的是最新版本的libusb-1.0.21, libusb-compat-0.1.5
其中libusb-1.0和libusb-compat-0.1中的函数以及编译时的链接方式都是不一样的。
在这里,查看某动态库内的函数的命令是nm加上动态库名

之后利用tar命令解压,然后执行./configure --host=arm-none-linux-gnueabi(指定交叉编译工具链)
(对于libusb-1.0版本执行configure时可能会出现以下错误)configure:error:“udev support requested but libudev not installed” 
上网查询之后,发现在命令后加上--disable -udev即可

进行make操作,没有问题,之后make install时需要有root权限,但是发现在加上sudo命令后出现了
../libtool: line 1085: arm-none-linux-gnueabi-ranlib: command not found
make[2]: *** [install-libLTLIBRARIES] Error 127
在命令行执行sudo -i命令后切换到root权限,然后执行make install,成功生成了我们所需的库文件

然后在程序编译时需要链接库文件时,首先需要有-L包含动态库的路径,
其次有-lusb和-lusb-1.0两种选择,具体的可用nm查看所使用的函数在哪个库中,如果链接错了,编译时将会出现一大堆undefined

如果在编译时,提示cannot find -lusb,那么就应该是只安装了libusb-1.0而并没有安装libusb-compat-0.1而做造成的错误


参考链接:
安装libusb出错:http://blog.csdn.net/xfc_1939/article/details/53422071
链接libusb出错:http://bbs.chinaunix.net/thread-3731778-1-1.html

交叉编译:http://blog.csdn.net/tycool/article/details/18842367
0 0
原创粉丝点击