You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

交叉编译Arm(armhf)版Boost失败,提示arm不是有效数字

Boost交叉编译错误解决方法

错误原因

user-config.jam中using gcc : arm : arm-linux-gnueabihf-g++ ;的配置触发了b2的版本解析错误:b2会将第二个参数arm当作gcc的版本号尝试解析为数字,而arm不是合法数字,导致报错。

可行解决方案

方案一:修改工具集别名,避免版本号误解

  1. 编辑user-config.jam,将工具集标签改为非数字形式,同时补充交叉工具链的归档工具配置:
using gcc : arm-linux : arm-linux-gnueabihf-g++ :
    <archiver>arm-linux-gnueabihf-ar
    <ranlib>arm-linux-gnueabihf-ranlib
    <target-os>linux
    <architecture>arm ;
  1. 执行编译命令:
./b2 toolset=gcc-arm-linux target-os=linux

方案二:省略版本号,直接指定交叉编译器

  1. 调整user-config.jam配置,留空版本号字段:
using gcc : : arm-linux-gnueabihf-g++ ;
  1. 编译时明确指定目标架构和系统:
./b2 toolset=gcc target-os=linux architecture=arm address-model=32

额外注意事项

  • 确保交叉编译工具链(arm-linux-gnueabihf-g++、arm-linux-gnueabihf-ar等)已安装且在系统PATH中,若不在PATH里,需配置完整路径(如/usr/bin/arm-linux-gnueabihf-g++)。
  • 可添加--build-dir=build-arm参数指定单独的编译目录,避免与本地原生编译文件混淆。
  • 若需安装编译后的库,可追加install --prefix=/your/arm/install/path指定安装路径。

内容的提问来源于stack exchange,提问作者Kingsley

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 07:55:18