多版本opencv cmakelist
时间: 2025-05-09 18:19:10 浏览: 29
### 多版本 OpenCV 的 CMakeLists.txt 配置方法
当项目中存在多个不同版本的 OpenCV 库时,在 `CMakeLists.txt` 文件中正确配置这些库变得尤为重要。为了确保能够选择特定版本的 OpenCV 进行编译链接,可以采取如下措施:
#### 设置环境变量指定特定版本路径
对于安装于 `/opt/opencv-2.4.11` 下的 OpenCV 版本,可以在调用 `find_package(OpenCV REQUIRED)` 前通过设置 `OpenCV_DIR` 来指向所需的配置文件位置。
```cmake
set(OpenCV_DIR /opt/opencv-2.4.11/share/OpenCV)
find_package(OpenCV REQUIRED)
```
这一步骤确保了即使系统中有其他版本的 OpenCV 安装,也会优先考虑此路径下的资源[^4]。
#### 关键字区分大小写敏感性
值得注意的是,命令 `find_package(OpenCV REQUIRED)` 中的关键字 "OpenCV" 是严格区分大小写的。这是因为 CMake 将依据该关键字作为前缀来定位 `/usr/local/share/OpenCV` 或者由上述方式设定的新路径内的 `OpenCVConfig.cmake` 和 `OpenCV-config.cmake` 文件,从而加载对应的头文件和库函数列表[^3]。
#### 示例完整的 CMakeLists.txt 脚本
下面给出一段用于连接特定版本 OpenCV 的最小化工作示例脚本:
```cmake
cmake_minimum_required(VERSION 3.5)
project(MyProject VERSION 1.0 LANGUAGES CXX)
# 设定目标 Opencv 版本所在的目录
set(OpenCV_DIR /opt/opencv-2.4.11/share/OpenCV)
# 查找并导入所需版本的 OpenCV 组件
find_package(OpenCV REQUIRED)
add_executable(${PROJECT_NAME} main.cpp)
target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS})
include_directories(${OpenCV_INCLUDE_DIRS})
message(STATUS "Using OpenCV version: ${OpenCV_VERSION}")
```
这段代码展示了如何在一个简单的 C++ 工程里集成特定版本的 OpenCV 库,并打印所使用的具体版本号以便确认是否成功选择了预期的目标版本。
阅读全文
相关推荐

















