Linux 使用交叉编译工具链编译boost

发布时间 2023-06-16 18:25:04作者: 林西索

参考: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