进入libusb-1.0.8,交叉编译:
mkdir install
./configure --build=i686-linux --host=arm-linux --prefix=`pwd`/install CC=arm-none-linux-gnueabi-gcc
make
make install
说明一下:--build=i686-linux表示该软件在x86平台上被编译
--host=arm-linux表示该软件编译完成后在arm平台上运行
--prefix后面为软件安装目录
注意“--prefix=`pwd`/install中的点号为键盘1左边的那个键,不是“键。
如果写成双引号键里的单引号,就会出现configure: error: expected an absolute directory name for --prefix: pwd/install错误
把对应的so文件放到文件系统的/usr/lib目录就可以了
CC=arm-none-linux-gnueabi-gcc是使用于tiny4412板子的交叉编译链,同时要设置交叉编译链对应的环境变量,如果设置不正确或者没有设置
出现如下错误:checking for arm-linux-gcc... arm-linux-gcc
checking for C compiler default output... configure: error: Ccompiler cannot create executables
See `config.log' for more details.
打开config.log后第71行~第73行:
configure:2516: checking for C compiler version
configure:2519: arm-linux-gcc --version </dev/null>&5
./configure: line 2520: arm-linux-gcc: command not found
可以发现,编译脚本并没有找到arm-linux-gcc的编译器,但是交叉编译器已经配置过了并已经生效。
出现此问题:是因为我的libusb文件是写保护的,所以只有root用户可以configure,普通用户不可以,所以我sudo configure的时候默认的是root用户的环境变量,而我root用户的环境变量没有设置这个交叉编译连的路径。
解决办法:1:在root下设置想对应的环境变量路径,然后sudo configure
2:把libusb文件都变成不是写保护的,就可以直接在普通用户下执行configure