CentOS7编译OpenVINO项目遇CMAKE_ROOT未找到错误求助
在CentOS 7机器上构建OpenVINO的security_barrier_camera_demo项目时,运行build_demos.sh出现以下CMake错误:
CMake Error: Could not find CMAKE_ROOT !!!
CMake has most likely not been installed correctly.
Modules directory not found in
/usr/share/cmake3
CMake Error: Error executing cmake::LoadCache(). Aborting.
已尝试通过源码包安装CMake并设置CMAKE_ROOT路径,也重新安装过CMake,但问题依旧。当前环境:Python 3.10、CMake 3.30、CentOS 7、GCC 4.8.5。
1. 定位源码安装的CMake路径
假设你将CMake 3.30源码包解压到了/usr/local/cmake-3.30.0,其核心目录结构应为:
- 可执行文件:
/usr/local/cmake-3.30.0/bin/cmake - 配置模块目录:
/usr/local/cmake-3.30.0/share/cmake-3.30/Modules
2. 临时配置环境变量(优先使用源码安装的CMake)
在终端中执行以下命令,覆盖系统默认的cmake3路径:
export PATH=/usr/local/cmake-3.30.0/bin:$PATH export CMAKE_ROOT=/usr/local/cmake-3.30.0/share/cmake-3.30
注意:CMAKE_ROOT必须指向包含Modules子目录的路径,而非系统默认的/usr/share/cmake3
3. 验证CMake配置有效性
执行以下命令确认配置正确:
# 检查CMake版本是否为3.30 cmake --version # 检查CMAKE_ROOT路径是否正确 echo $CMAKE_ROOT # 确认Modules目录存在 ls $CMAKE_ROOT/Modules
4. 清理缓存并重新构建demo
删除之前的构建缓存目录,再运行构建脚本:
rm -rf build ./build_demos.sh
5. 永久生效环境变量(可选)
如果临时配置有效,将环境变量添加到~/.bashrc文件,确保每次登录自动生效:
echo 'export PATH=/usr/local/cmake-3.30.0/bin:$PATH' >> ~/.bashrc echo 'export CMAKE_ROOT=/usr/local/cmake-3.30.0/share/cmake-3.30' >> ~/.bashrc source ~/.bashrc
6. 兼容问题补充:升级GCC版本
CentOS 7默认的GCC 4.8.5版本过低,可能无法兼容OpenVINO的部分编译需求。可通过devtoolset升级GCC:
# 安装devtoolset仓库 yum install centos-release-scl # 安装GCC 7(可根据需求选择更高版本,如devtoolset-9) yum install devtoolset-7-gcc devtoolset-7-gcc-c++ # 临时启用升级后的GCC scl enable devtoolset-7 bash # 永久启用的话,添加到~/.bashrc echo 'source scl_source enable devtoolset-7' >> ~/.bashrc
内容的提问来源于stack exchange,提问作者Riya Singh Baghel

