参考:Boost交叉编译
执行./bootstrap.sh后,会生成project-config.jam。
修改project-config.jam文件:
#if ! gcc in [ feature.values <toolset> ]
#{
#using gcc : ;
#}
if ! gcc in [ feature.values <toolset> ]
{
using gcc : : /cross-tools/aarch64-poky-linux-gcc --sysroot=/cross-tools/sysroots ;
}
说明:
1.指定交叉编译器:
/cross-tools/aarch64-poky-linux-gcc
2.指定交叉编译环境目录:
--sysroot=/cross-tools/sysroots
然后执行 ./b2 编译
PS:每个语句间的空格不能缺少
通过脚本自动完成编译:
#!/bin/sh
#编译工具路径
QL_CROSSTOOLS=/opt/ql_crosstools/ql-ag550qcn-le20-gcc820-v1-toolchain/gcc/usr/bin/arm-oe-linux-gnueabi
#SYSROOT路径
QL_SYSROOT=/home/hrx/work/ql-sysroots
COMPILER_SYSROOT="--sysroot=$QL_SYSROOT"
#编译工具
COMPILER_CC=$QL_CROSSTOOLS/arm-oe-linux-gnueabi-gcc
#编译选项
COMPILER_FLAGS="-march=armv7-a -marm -mfpu=neon -mfloat-abi=hard"
#安装位置
COMPILER_PREFIX=$(pwd)/../target_cross
rm -rf project-config.jam*
./bootstrap.sh --with-libraries=all --prefix=$COMPILER_PREFIX
#将gcc替换成交叉编译工具的gcc并添加编译选项和sysroot路径
sed -i "/using gcc/c using gcc : : $COMPILER_CC $COMPILER_FLAGS $COMPILER_SYSROOT ;" project-config.jam
./b2 install variant=release abi=aapcs address-model=32 architecture=arm binary-format=elf threading=multi toolset=gcc