针对交叉编译工具链的使用情况有所不同,介绍两种不同的交叉编译流程。
一、工具链提供脚本配置环境变量
使用如下命令先设置交叉编译环境
source /opt/phytec-yogurt/BSP-Yocto-AM335x-PD19.1.1/environment-setup-cortexa8hf-neon-phytec-linux-gnueabi
将下载的openssl源码包解压,然后切换到源码目录,执行config命令
./config no-asm shared --prefix=$(pwd)/install --cross-compile-prefix=arm-phytec-linux-gnueabi-
然后修改makefile文件,由于使用的是ubuntu 64位系统,而目标库是32位的,需要将所有的-m64删除,然后检查CC,看配置的是否是交叉工具链的gcc。
修改完成后先执行make clean -w(本人就是在这一步遇到的问题,查了好多资料才解决,原因是我先按照正常流程编译了一次openssl库,然后再执行config想交叉编译,结果make的时候一直报错)
接下来就是简单的make、make install等库自己生成就好啦。
二、通过export手动配置环境
此方法其余步骤都跟第一种一样,只是设置交叉编译环境的命令有所不通。使用export命令将工具链的bin目录设置到环境变量中。
export PATH=$PATH:/home/xx/tools/arm_gcc/crosstool-ng-1.21.0-174-g7d3ef02-am335x-on-i686/bin