赞
踩
例如:libusb-1.0.26.tar.bz2 版本
~$ mkdir libusb
~$ mkdir libusb/install
~$ cd libusb/
~/libusb$ tar -xvf libusb-1.0.26.tar.bz2
~/libusb$ cd libusb-1.0.26/
~/libusb/libusb-1.0.26$
./configure --build=i686-linux --host=arm-linux --prefix=/home/new/libusb/install CC=/home/new/Software/rv1126/rv1126-sdk/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc CXX=/home/new/Software/rv1126/rv1126-sdk/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++ --disable-udev
执行上述指令后报如下错误
【--build=i686-linux 】:表示该软件在x86平台被编译
【--host=arm-linux】:表示该libusb库编译完成后在arm平台上运行
【--prefix=/home/.... 】: 表示为改库安装路径。
【CC=/home... 】【CXX=/home.. 】 :表示指定了交叉编译使用的C,C++交叉编译器
【--disable-udev】 : 表示 不使能 libudev,不加会出现如下错误提示:
configure: error: udev support requested but libudev header not installed
$ make
$ make install
执行完make install后我们可以在prefix指定的目录中看到编译好的库及相应的头文件。
在arm平台下使用的库文件名称是:libusb-1.0.so.0.1.0。
进入examples
~/libusb/libusb-1.0.26$ cd examples/
交叉编译器arm-linux-gnueabihf-gcc编译测试源程序 listdevs.c
arm-linux-gnueabihf-gcc -o listdevs -I/home/new/libusb/install/include/libusb-1.0 listdevs.c -L/home/new/libusb/install/lib -lusb-1.0
listdevs程序与lsusb命令查询结果一致,安装编译成功。
在linux中,la是使用libtool编译出的库文件,是记录同名动态库和静态库相关信息的文本文件;
该文件是通过libtool保存在平台之间的唯一文件。libtool是一个通用库支持脚本,只与后缀名为lo、la的libtool文件打交道。
libtool 是一个通用库支持脚本,将使用动态库的复杂性隐藏在统一、可移植的接口中;
使用libtool的标准方法,可以在不同平台上创建并调用动态库。
可以认为libtool是gcc的一个抽象,其包装了gcc(或者其他的编译器),用户无需知道细节;
只要告诉libtool需要编译哪些库即可,libtool将处理库的依赖等细节。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。