Linux 使用交叉编译工具链编译boost
参考: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
分类:
Linux
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】