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

编译Thrift时遇Boost测试库文件缺失错误求助

解决Thrift交叉编译ARM时找不到libboost_unit_test_framework.a的问题

核心原因

你在做ARM架构交叉编译,系统默认/usr/lib下是x86架构的Boost库,ARM编译工具链无法识别;且你大概率没安装针对ARM架构编译的Boost单元测试静态库。

解决方案

1. 交叉编译ARM版本的Boost库

如果需要保留单元测试功能,必须先编译适配ARM的Boost库:

  • 下载Boost源码并解压,执行./bootstrap.sh生成配置文件
  • 编辑project-config.jam,指定交叉编译工具链,示例:
    using gcc : arm : arm-linux-gnueabihf-g++ ;
    
  • 执行编译安装命令(替换/path/to/arm-boost为自定义安装路径):
    b2 --build-dir=build-arm --prefix=/path/to/arm-boost install toolset=gcc-arm target-os=linux architecture=arm
    

2. 重新配置Thrift,指定ARM Boost路径

运行configure时明确指定ARM版Boost的安装路径,确保工具链能正确识别:

./configure --host=arm --with-boost=/path/to/arm-boost --with-boost-libdir=/path/to/arm-boost/lib

完成配置后再执行make。

3. 禁用单元测试(快速绕过)

如果不需要Thrift的单元测试模块,直接在configure阶段关闭测试编译:

./configure --host=arm --enable-tests=no

这样编译过程不会再尝试链接libboost_unit_test_framework.a。

4. 手动修正Makefile路径

若上述配置仍未解决问题,打开Thrift生成的Makefile,找到BOOST_LDFLAGS和BOOST_LIBS变量,将其中的/usr/lib替换为交叉编译Boost的库路径,保存后重新执行make。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 18:42:08