【问题标题】:Cross-compiling boost 1.69.0 for ARMARM 的交叉编译 boost 1.69.0
【发布时间】:2023-07-12 10:58:01
【问题描述】:

尝试在 WSL Debian 中交叉编译 boost 1.69.0 我在没有 icu 或 python 支持的情况下运行 bootstrap.sh。添加后

使用 gcc : arm : arm-linux-gnueabihf-g++ ;

project-config.jam 运行./b2 install 时出现以下错误

Performing configuration checks

- default address-model    : 32-bit
- default architecture     : arm
error: No best alternative for libs/context/build/asm_sources
next alternative: required properties: <abi>aapcs <address-model>32 <architecture>arm <binary-format>elf <threading>multi <toolset>clang
    not matched

它持续了好几行。

  1. 那里出了什么问题?
  2. 由于我无法直接在目标系统上构建,因为它没有足够的硬盘,您建议如何解决此错误?
  3. 是否有我不知道的预编译 libboost 1.69?

【问题讨论】:

    标签: boost arm cross-compiling beagleboneblack


    【解决方案1】:

    我想我发现了问题:

    当我尝试构建 boost 时,我尝试构建所有它。我玩了一段时间,得出了以下调用 b2 的参数:

    ./b2 --prefix=~/boostForBBB/ \
        --without-context \
        --without-coroutine \
        --without-fiber \
        --without-python \
        --address-model=32 \
        --stagedir=~/boostForBBBstage-arm-gnueabihf-g++/ \
        -j3 \ #here you should obviously write how many cores you want to build on
        -toolset=arm-linux-gnueabihf-g++ \
        -threading=multi \
    

    这为我解决了问题。不过,我很乐意听到原因。

    【讨论】: