执行cmake ./编译Cell-DEVS-CO2_spread_indoor报Boost缺失错误如何解决
报错信息:Could NOT find Boost (missing: program_options unit_test_framework) (found version "1.75.0")
问题解决步骤
该报错说明设备上已安装Boost 1.75.0核心库,但缺少项目依赖的两个可选组件:program_options(命令行参数解析组件)和unit_test_framework(单元测试组件),可按实际场景选择对应方案解决:
方案1:安装完整Boost组件包(最省心)
- Debian/Ubuntu 系列:
执行命令:sudo apt install libboost-all-dev - RHEL/CentOS/Fedora 系列:
执行命令:sudo dnf install boost-devel - macOS(Homebrew环境):
执行命令:brew install boost - Windows(vcpkg环境):
执行命令:vcpkg install boost-program-options boost-unit-test-framework boost-system
安装完成后删除项目目录下之前生成的CMakeCache.txt文件,重新执行cmake ./即可。
方案2:仅安装缺失的两个组件(适合存储空间有限场景)
不想安装完整Boost包的情况下可单独安装两个缺失组件:
- Debian/Ubuntu 系列:
sudo apt install libboost-program-options-dev libboost-test-dev - RHEL/CentOS/Fedora 系列:
sudo dnf install boost-program-options boost-test
方案3:手动编译Boost场景的修复方法
如果Boost是手动下载源码编译安装的,说明编译时没有开启对应组件的编译,回到Boost源码目录重新执行编译安装即可:
./bootstrap.sh --with-libraries=program_options,test,system ./b2 install
之后执行cmake时指定Boost的安装路径即可:
cmake ./ -DBOOST_ROOT=/你的Boost实际安装路径 -DBoost_NO_SYSTEM_PATHS=ON
方案4:无需单元测试的适配方案
如果不需要运行项目的单元测试,可以直接修改项目根目录的CMakeLists.txt,去掉对unit_test_framework的依赖声明,仅保留program_options依赖即可,修改完成后重新执行cmake。
内容的提问来源于stack exchange,提问作者Anna Colmenero
相关产品推荐
相关产品推荐

