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