CMake Error at CMakeLists.txt:5 (CMAKE_MINIMUM_REQUIRED): Compatibility with CMake < 3.5 has been removed from CMake.
时间: 2025-04-28 17:28:35 浏览: 203
### 解决 CMake 版本兼容性问题
当遇到 `CMake Error at CMakeLists.txt:5 (find_package)` 错误时,通常是因为项目尝试查找 OpenCV 的配置文件失败。为了确保项目的 CMake 文件能够正确处理不同版本的 CMake 并支持 3.5 及以上版本,可以采取以下措施:
#### 设置最低 CMake 版本要求
在 `CMakeLists.txt` 文件顶部设置最小所需的 CMake 版本,这有助于防止使用不兼容的老版本构建工具。
```cmake
cmake_minimum_required(VERSION 3.5)
```
此命令确保任何低于指定版本的 CMake 将拒绝继续执行并给出错误提示[^1]。
#### 正确安装和配置 OpenCV
如果找不到 `FindOpenCV.cmake` 或者无法定位到 OpenCV 配置,则可能是由于未正确安装 OpenCV 库或者环境变量没有被适当设置。建议按照官方文档指导完成 OpenCV 安装,并确认开发包已就位[^2]。
对于 Linux 用户来说,可以通过包管理器来简化这一过程;而对于 Windows 和 macOS 用户而言,可能需要手动下载并解压预编译二进制文件至合适位置,同时调整系统的 PATH 环境变量指向这些路径下的 bin 目录。
#### 修改模块搜索路径
为了让 CMake 能够找到必要的 Find 模块(如 `FindOpenCV.cmake`),可以在调用 `find_package()` 命令之前通过修改 `CMAKE_MODULE_PATH` 来增加额外的目录供其查询。
```cmake
set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/modules ${CMAKE_MODULE_PATH})
```
上述代码片段会将当前工程根目录下名为 cmake/modules 的子文件夹加入到模块搜索列表中。
另外一种方法是利用 `CMAKE_PREFIX_PATH` 参数告知 CMake 在哪里寻找第三方库及其关联资源。例如,在运行 cmake 命令时加上 `-DCMAKE_PREFIX_PATH=/path/to/opencv/installation` 即可让程序知道去哪里找 OpenCV。
#### 使用现代风格的 find_package()
新版本的 CMake 推荐采用更简洁的方式来进行依赖项检测——即所谓的“Config Mode”。这种方式不需要特定于某个平台或实现细节的知识就能工作得很好。因此推荐改写原有的 `find_package(OpenCV REQUIRED)` 成如下形式:
```cmake
find_package(OpenCV CONFIG REQUIRED)
target_link_libraries(my_target PRIVATE opencv_core opencv_imgproc ...)
```
这里的关键在于指定了 `CONFIG` 关键字以及具体要链接的目标组件名称而不是整个库名。
通过实施上述更改,应该能有效缓解因 CMake 不同版本间差异所带来的兼容性挑战,并成功集成 OpenCV 到项目当中去。
阅读全文
相关推荐















