交叉编译package

1. 设置环境变量 ,加上交叉编译工具链的路径

如:export PATH=/usr/local/poky/eabi-glibc/arm/bin:$PATH
export PKG_CONFIG_SYSROOT_DIR=/usr/local/poky/eabi-glibc/arm/arm-poky-linux-gnueabi
export PKG_CONFIG_PATH=/usr/local/poky/eabi-glibc/arm/arm-poky-linux-gnueabi/lib/pkgconfig
export CONFIG_SITE=/usr/local/poky/eabi-glibc/arm/site-config
可写成脚本文件, 然后  sourc *.sh

 

2.下载的package解压后,./configure --host=arm-poky-linux-gnueabi    host=交叉工具链接的名字。要想安装到交叉编译工具链里 加 --prefix=$(cross_dir).

此过程可能出现的问题: 

(a)configure 不支持交叉编译, 然后退出。  可修改其文件,将cross-compiling = no . 欺骗一下, 或者将退出改为continue , 看具体情况。

(b) 需要依赖别的包, 无他, 下载, 编译。。

 

3,make 

此过程可能出现的问题:

(a)需要链接的动态库为本机上的, 并不是交叉编译环境的.so文件, 目前知道的解决办法为另名本机/usr/lib等库所需.so文件对应的.la文件。再make, 会去交叉编译环境目录下找.so文件。。

(b)一般不支持交叉编译的包, 都会出现的问题。会先编译个应用程序, 然后利用此应用程序进行后面的编译。而交叉编译出来的此应用程序为arm指令。并不能运行。解决办法是先在本机环境下编译一次, 然后拷贝此程序到相应目录,但要改名。同时到Makefile文件中修改需要用到此程序的名字为本机编译下的程序名。

 

4. sudo make install

 

5,安装后,要将$(cross_dir)/lib/pkgconfig 中对应的.pc文件中的 --prefix=$(cross_dir)的交叉路径删掉,可该为--prefix=(空格)。 这样,在以后的交叉编译的程序用到此库时, 才能正确知道此库。。

 

6.over

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值