Cmake 使用没有安装到系统的lib, 如OpenCV4

本文介绍如何修改CmakeLists.txt文件,以便在安装OpenCV于非标准路径(例如/home/user/xxx)时能正确找到库。通过在find_packages(OpenCV)后添加find_packages(OpenCV REQUIRED PATHS /home/user/xxx),可以确保编译过程能够识别自定义位置的OpenCV。

修改CmakeLists.txt

假设 opencv4 安装在/home/user/xxx

将 find_packages(OpenCV)

在后面加上 find_packages(OpenCV REQUIRED PATHS /home/user/xxx)

### 编译环境准备 在开始编译之前,确保已经准备好以下内容: - **OpenCV源码**:从[OpenCV官方GitHub仓](https://github.com/opencv/opencv)下载版本4.11.0的源码包。 - **OpenCV Contrib模块**:如果需要额外的功能(如人脸检测等),还需从[OpenCV contrib仓](https://github.com/opencv/opencv_contrib)获取对应版本4.11.0的模块源码[^1]。 - **CMake工具**:安装[CMake](https://cmake.org/download/)(建议3.5.1及以上版本)以支持OpenCV 4.11.0的需求[^4]。 - **构建工具**:推荐使用Visual Studio 2022(Windows环境下),或者适用于Linux的`make`或`ninja`。 --- ### CMake配置步骤 1. 解压下载好的OpenCVOpenCV Contrib源码包,并创建一个用于存放编译结果的目录,例如`build_opencv`。 2. 打开CMake GUI工具: - 在"Where is the source code"中选择OpenCV源码目录。 - 在"Where to build the binaries"中指定刚刚创建的`build_opencv`目录[^3]。 3. 点击“Configure”按钮,选择目标平台(例如Visual Studio 2022),然后等待CMake完成初步配置。 4. 配置选项: - 勾选`BUILD_opencv_world`选项,将所有模块合并为一个文件(例如`opencv_world490.lib`),简化后续开发过程[^2]。 - 如果不需要Python绑定,可以取消勾选`BUILD_opencv_python3`。 - 若需引入额外功能,设置`OPENCV_EXTRA_MODULES_PATH`指向OpenCV Contrib模块中的`modules`目录。 5. 再次点击“Generate”,生成适用于所选编译器的项目文件。 --- ### 编译与安装 1. 打开生成的解决方案文件(如`build_opencv/OpenCV.sln`),选择合适的构建模式(Debug或Release)。 2. 构建整个解决方案,这会生成所需的`.lib`文件以及头文件。 3. 完成后,在`build_opencv/install`目录下找到最终的文件和头文件,可用于项目集成。 --- ### 示例代码 以下是一个简单的OpenCV测试程序,验证编译是否成功: ```cpp #include <opencv2/opencv.hpp> int main() { cv::Mat image = cv::Mat::zeros(512, 512, CV_8UC3); cv::circle(image, cv::Point(256, 256), 100, cv::Scalar(0, 255, 0), -1); cv::imshow("Test Image", image); cv::waitKey(0); return 0; } ``` 确保链接正确的OpenCV文件(如`opencv_world490.lib`)并包含对应的头文件路径。 --- ### 注意事项 - OpenCV 4.11.0要求编译器支持C++11标准,请确认使用的编译器兼容性[^4]。 - 若遇到依赖问题,检查是否遗漏了某些第三方(如FFmpeg、TBB等),可通过`WITH_*`选项启用相关支持。 - 编译过程中可能出现警告信息,但只要最终生成`.lib`文件且能通过简单测试程序运行,则说明编译无误。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值