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

Ubuntu虚拟机编译AIToolbox时make无法找到Boost的multi_array.hpp求助

编译报错解决方法

报错核心原因是:你使用了vcpkg工具链,vcpkg的Boost路径优先级高于你手动指定的BOOST_ROOT,导致cmake识别到的Boost路径和你实际放multi_array.hpp的路径不一致,同时你之前配置的target_link_libraries关联的目标名错误,配置没有生效。

具体解决步骤

  • 第一步:清理历史构建缓存
    进入你执行cmake命令的构建目录,删除旧的编译缓存,避免旧配置干扰:
    rm -rf CMakeCache.txt CMakeFiles/
    
  • 第二步:调整cmake执行参数
    新增-DBoost_NO_SYSTEM_PATHS=ON参数,强制cmake优先查找你指定的本地Boost路径,避免被vcpkg的配置覆盖:
    cmake .. -DBOOST_ROOT=/home/ben/AI/boost_1_77_0 -DBoost_NO_SYSTEM_PATHS=ON -DLPSOLVE_INCLUDE_PATH=/home/ben/AI/lpsolve -DVCPKG_TARGET_TRIPLET=x64-linux -DCMAKE_TOOLCHAIN_FILE=/home/ben/AI/vcpkg/scripts/buildsystems/vcpkg.cmake
    
  • 第三步:修正CMakeLists.txt配置
    你之前给错误的目标名program加的配置不生效,从报错信息可知编译目标名为AIToolboxMDP,直接给该目标配置Boost头文件路径:
    find_package(Boost ${BOOST_VERSION_REQUIRED} REQUIRED)
    # 给实际编译目标配置头文件路径
    target_include_directories(AIToolboxMDP SYSTEM PRIVATE ${Boost_INCLUDE_DIRS})
    # 如用到Boost编译型库可新增以下配置,仅用头文件库可省略
    target_link_libraries(AIToolboxMDP PRIVATE ${Boost_LIBRARIES})
    
  • 第四步:重新执行编译
    配置完成后重新执行make,如需排查可加VERBOSE参数查看详细编译参数:
    make VERBOSE=1
    

临时应急方案

如果以上步骤还是无效,可以直接指定C++编译参数强制加入Boost头文件路径:

export CXXFLAGS="-I/home/ben/AI/boost_1_77_0"
make

补充排查:如果仍提示找不到文件,可执行ls /home/ben/AI/boost_1_77_0/boost/multi_array.hpp确认文件存在且当前用户有读取权限。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 07:57:03