news 2026/5/5 23:25:56

Window使用CMakeLists编译Opencv

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Window使用CMakeLists编译Opencv

为了方便跨平台移植,在Window上写的代码可以无缝移植到Ubuntu上。

一、首先需要先安装VisualStudio,安装C++环境,建议安装2019或者2022的版本,下载安装链接https://mp.weixin.qq.com/s/5TBz8bHEAY_pMlxKXcOQuA

二、安装Opencv,链接:https://opencv.org/releases/

这里我选择4.8.0,选择Windows,进行下载,下载完成后直接安装即可。

三、安装Cmake,下载地址:https://github.com/Kitware/CMake/releases/download/v4.2.5/cmake-4.2.5-windows-x86_64.zip

下载完后解压只有这四个文件夹。

四、编辑系统环境变量

4.1在设置里输入环境,点击编辑系统环境变量

4.2点击环境变量

4.3在系统变量中找到Path,双击进去

4.4点击新建,将刚安装的opencv和cmake的路径添加进去,如果后续环境没生效的话可以重启一下电脑

五、上述已经完成了编译所需的环境,建议下载VisualStudio Code来读写代码,无需对该软件设置环境变量。新建一个测试文件夹,测试文件夹中新建一个空的build文件夹,添加CMakeLists.txt、main.cpp和一张test.jpg,使用VS Code打开这个文件夹

CMakeLists.txt如下:

cmake_minimum_required(VERSION 3.10) project(main) # 设置编译器为C++14 set(CMAKE_CXX_STANDARD 14) # 查找 OpenCV 包 find_package(OpenCV 4.8.0 REQUIRED) # 包含头文件目录 include_directories(${OpenCV_INCLUDE_DIRS}) INCLUDE_DIRECTORIES( ${PROJECT_SOURCE_DIR}/include) # 添加可执行文件 add_executable(main main.cpp) # 链接库 target_link_libraries(main ${OpenCV_LIBS} )

main.cpp示例代码如下:

#include <opencv2/opencv.hpp> #include <iostream> int main() { cv::Mat image = cv::imread("../../test.jpg"); if (image.empty()) { std::cout << "Could not read the image: " << std::endl; return 1; } cv::imshow("Display window", image); cv::waitKey(0); return 0; }

5.1头文件报错,这会导致你写代码没有任何错误提示,这不是你没有安装好环境,只是VS Code编译器没有找到库的路径,让编译器找到opencv的库(对于Ubuntu同样适用)。鼠标放在头文件上,点击快速修复

5.2点击编辑"includePath"设置

5.3点击c_cpp_properties.json

5.4之后会出现.vscode/c_cpp_properties.json

使用下述代码替换,注意opencv和Visual Studio的路径,需要改成你自己的,Ctrl+s保存后回到main.cpp后编写代码就会提示错误和代码补齐了。

{ "configurations": [ { "name": "Win32", "includePath": [ "${workspaceFolder}/**", "D:/Software/Opencv4.8.0/opencv/build/include" ], "compilerPath": "D:/Software/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe", "defines": [ "_DEBUG", "UNICODE", "_UNICODE" ] } ], "version": 4 }

六、代码编译

6.1Ctrl+~呼出终端,在终端输入cd build然后cmake ..

6.2 输入进行编译cmake --build . --config Release

6.2点击拆分终端

在该终端中输入cd .\Release\ 然后.\main.exe,运行成功。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/5 23:23:27

AI Agent完成率低至40%?老王揭秘10步规划,让你的Agent稳定率飙升至80%!

文章指出&#xff0c;AI Agent产品在内部演示和真实用户使用中的完成率差异巨大&#xff0c;主要问题在于多步骤复杂任务的规划不当。文章详细介绍了从需求解析、可行性判断、任务拆解到结果输出的11步规划流程&#xff0c;强调提前制定执行手册、状态追踪、结果验收和容错重规…

作者头像 李华
网站建设 2026/5/5 23:16:57

深度学习模型架构与优化实践指南

1. 深度学习模型架构基础解析 深度神经网络的结构设计直接影响模型的学习能力和泛化性能。当前主流架构可分为三大类&#xff1a;前馈网络&#xff08;如MLP&#xff09;、循环网络&#xff08;如LSTM&#xff09;和注意力网络&#xff08;如Transformer&#xff09;。以图像分…

作者头像 李华
网站建设 2026/5/5 23:12:10

在快马平台实战模拟蓝桥杯c语言真题,全面提升临场解题能力

最近在准备蓝桥杯比赛&#xff0c;发现很多同学和我一样&#xff0c;虽然刷了不少题&#xff0c;但一到真实比赛环境就容易手忙脚乱。今天分享一个在InsCode(快马)平台上模拟蓝桥杯C语言真题的实战项目&#xff0c;特别适合想要提升临场发挥能力的同学。 我选择的是蓝桥杯经典题…

作者头像 李华