Ubuntu 20.04下OpenPose配置CMake时Boost安装及组件缺失报错解决
Ubuntu 20.04 构建OpenPose时Boost依赖的正确安装配置流程
清除损坏的CMake旧缓存
最初的could not load cache报错是旧构建目录残留损坏缓存导致的,后续所有依赖查找报错都会被这个残留缓存干扰:
- 直接删除OpenPose源码目录下所有旧的build相关文件夹,不要在原目录反复执行cmake、make操作
- 在OpenPose源码根目录新建一个空的build文件夹,后续所有构建操作都在这个空文件夹内执行,避免读取历史错误路径
安装匹配OpenPose要求的Boost开发依赖
你之前零散安装依赖的方式遗漏了关键组件。Ubuntu 20.04 apt源内置的Boost 1.71版本完全满足OpenPose要求的≥1.54的版本门槛,不需要单独源码编译Boost:
- 先更新apt源索引:
sudo apt update - 直接安装全量Boost开发包,避免零散安装漏组件:
sudo apt install libboost-all-dev
你之前的安装列表遗漏了libboost-filesystem-dev组件包,这就是后续反复提示找不到boost_filesystem配置文件的核心原因。如果不想安装全量包,必须额外补上这个单独的组件包
执行正确的CMake配置流程
依赖安装完成后,在新建的空build目录内执行配置,避免缓存干扰:
- 命令行模式直接在build目录内执行:
cmake .. - GUI模式执行
cmake-gui ..后,可手动补全关键路径解决组件查找失败问题:- 将
BOOST_ROOT参数设置为/usr(apt安装Boost的默认根路径) - 确认
Boost_INCLUDE_DIR指向/usr/include - 若提示单个组件缺失,手动补全对应组件的库路径(默认位于
/usr/lib/x86_64-linux-gnu/下,例如libboost_filesystem.so、libboost_system.so)
- 将
- 确认配置界面无红色报错后点击生成,再执行构建命令:
make -j\nproc``
避坑提示
- 每次调整依赖后,建议删除build目录重建。CMake缓存会持久化存储之前的库查找结果,不会自动扫描新安装的组件
- 不要自行从源码编译安装Boost,这类安装的默认路径不会被CMake自动识别,会进一步提升配置报错概率
内容的提问来源于stack exchange,提问作者Mona Jalal
相关产品推荐
相关产品推荐

