Vscode+Cmake配置并运行opencv环境(Windows和Ubuntu大同小异)

这篇具有很好参考价值的文章主要介绍了Vscode+Cmake配置并运行opencv环境(Windows和Ubuntu大同小异)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vs studio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vs code下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。


0.CMkae简介

有的人到大二了都不知道cmake是什么,我不说是谁。

CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的makefile或者project文件,并且主流的各种库均提供了.cmake文件提供调用支持,使用方便。在opencv上说,使用它可以使多个版本的CV环境共存,且随意调用任意切换互不影响。

如果你使用gcc/g++开发套件供cmake编译,那么你在各个平台上获得的报错信息都是一样的,不会随着使用开发平台的变化而变化(对,说的就是qt的阴间报错)

需要注意的就是cmake仅仅是构建工具连编译器都不是。需要你指定编译器(开发套件),一般windows下面指定的是MinGw,Ubuntu下指定自带的gcc/g++。

它和轻量美观的vs code结合可谓是双剑合璧,十分建议学习。

1. 安装VS Code

VS code官网
点此下载vs code,需要梯子才能全速下载,没有的自行想办法。

2.安装cmake

windows

打开CMake官网,下载windows版本(.msi文件)
opencv cmake,ubuntu,vscode,opencv
下载完毕后,运行之。
Next->I accept the License & Next ->选择Add CMake to the PATH for all users,不然你还得自己去添->自己设定一个喜欢的安装路径 & next->Install 弹出的请求更改对话框选“是”

安装完毕后,查看环境变量
win11直接在设置里面搜索“环境变量”就可以了,win10进入windows设置,点击系统,高级系统设置,环境变量。
opencv cmake,ubuntu,vscode,opencv
看看你的PATH环境变量里面有没有这个,当然路径可能不一样,但是最终要指向你的cmake的bin文件夹下。

如果确认无误,那么就算安装好了

Ubuntu

sudo apt-get install cmake cmake-gui

完事

3.vs code初始设置

在左侧的侧边栏中找到插件图标,一般是个小拼图或者是四个小方块之类,安装如下插件:
c++开发基础插件,提供c++基础的开发能力
opencv cmake,ubuntu,vscode,opencv
CMake插件,提供cmake调用能力
opencv cmake,ubuntu,vscode,opencv
其他插件,如:code runner(运行器)、Chinese(简体中文包)
可选个人推荐插件:background-cover(换背景)markdown all in one(提供markdown编辑预览能力)polacode-2022(能够制作漂亮的代码片段截图)

安装完毕后,叉掉code重新打开。
检查你的侧边栏是否有cmake这一栏,如果有,请保持打勾状态
opencv cmake,ubuntu,vscode,opencv

4.cmake插件设定

使用快捷键ctrl+shift+p调出命令面板,输入cmake:kit,选择扫描工具包
opencv cmake,ubuntu,vscode,opencv
过一会应该会弹出扫描到的工具包,如果没有,请你手动点选择工具包。

opencv cmake,ubuntu,vscode,opencv
我这里是因为安装了visual studio所有有这么多套件,新生的电脑上如果没有安装visual studio,是没有这么多的。总之,选择一个你喜欢的开发套件即可。需要注意的是,如果不是visual studio的套件,需要看它显示的using compliers后面是不是c和CXX都有,不然你不能编译c++。一般来说都有。单击喜欢的套件使用之。

5.安装opencv

opencv下载链接
拉到底,看到3.4.6版本,点击windows,下载下来即可。

3.4.6是个人目前来说遇到问题最少的版本。之前电脑上的opencv4有问题,同样的代码在3.4.6里编译能过,cv4就有一个函数链接的时候报错。而且cv4还有solvepnp的异常问题,不建议安装。如果你非要尝鲜,建议cv3、4同时安装,选择调用。

点击打开,设置解压缩路径。
opencv cmake,ubuntu,vscode,opencv
完事。不需要配置什么环境变量。至于为什么待会说。

ubuntu

ubuntu环境下不能这样直接安装,需要编译安装。编译安装的教程网上非常多我就不再赘述,但是大致步骤为:
安装依赖包、编译、安装、添加环境变量、更改bash文件这几步。
编译完毕之后,记住你安装库文件的位置,做下面的步骤:

6.实际工程调用

实际工程调用的时候,只需要在cmakelist里面添加如下语句即可指定版本并链接、包含相关的库、头文件。大小写请严格遵守!

cmake查找库的原理是:调用库自带的config文件,根据其指引添加头文件、库文件列表。所以我们只需要指定其config文件的地址就可以。config文件一般都是库名+config.cmake命名,如:若为opencv库,则为:OpenCVConfig.cmake,你set一个dir到它所在位置就可以让cmake自行调用

set(OpenCV_DIR  D:/opencv/opencv3.4.6/opencv/build/x64/vc15/lib/)
find_package(OpenCV REQUIRED)

需要注意的是,set的opencv dir是set到你需要的库目录下面,并且务必存在.cmake引导文件,例如:
opencv cmake,ubuntu,vscode,opencv
这俩opencv_world346.lib就是opencv的库文件,下面的OpenCVConfig.cmake就是cmake指引文件,而版本是x64、vc15,一般来说你x64文件夹下应该还有一个vc14,如果你有需要,可以设定到那里。一般来说设定在vc15下面就可以。

OpenCVConfig.cmake为我们制作好了头文件、库文件列表,调用方式如下:

#添加头文件
include_directories(${OpenCV_INCLUDE_DIRS})
#链接库文件
target_link_libraries(main  ${OpenCV_LIBS})

至于为什么是这两个变量,你可以自己去看opencv的cmake引导文件,里面写的明明白白,代码之下无秘密。
opencv cmake,ubuntu,vscode,opencv

7.引例

虽然配置到上面就已经结束了,但是还是想做一个例子工程,以免有人不会用。如果你目前还不会cmakelist的语法,那赶紧去学。不要指望着什么都有人来教。C站上教程多的是。

1.新建文件夹
2.打开vscode, ctrl+k ctrl+o打开刚刚创建的文件夹。
3.创建如下文件:
main.cpp

#include <iostream>
#include <opencv2/opencv.hpp>

int main()
{
    cv::Mat img;
    img = cv::imread("D:\\c++\\showCV\\1.jpg"); //这里放你图片的绝对路径,注意是双斜杠

    cv::imshow("show", img);
    cv::waitKey(0);

    return 0;
}

CMakeLists.txt

cmake_minimum_required(VERSION 2.8)

project(test)

set(DEFAULT_CXX_STANDARD 11)

set(OpenCV_DIR  D:/opencv/opencv3.4.6/opencv/build/x64/vc15/lib/)#库路径你自己换成你电脑上的

find_package(OpenCV REQUIRED)

include_directories(${OpenCV_INCLUDE_DIRS})

add_executable(main ${PROJECT_SOURCE_DIR}/main.cpp)

target_link_libraries(main  ${OpenCV_LIBS})

拷贝一张你喜欢的图片进去,命名为1.jpg

文件夹结构目录如下:(build是cmake自动生成的,如果你没有请不要急)
opencv cmake,ubuntu,vscode,opencv
确定你是否已经选择开发套件,如果没有,打开cmakelist,ctrl+s保存,它会弹出让你选择开发套件。

下图为vscode底边栏。第一个是选择优化模式,可以选择debug、release等,第二个是开发套件,点击更改或者选择。第三个是build,点击编译,第四个是选择目前编译的目标,如果你有多个生成,可以选择你想要生成的而不是编译全部。小臭虫是启动debug,这个很好用,自己去查怎么配。小三角是运行,后面那个main是选择当前你想要运行的目标。
opencv cmake,ubuntu,vscode,opencv

在cmakelist内每次更改完一定ctrl+s保存,cmake会自动更新构建方式。下面自动弹出输出框,你看有没有类似这样的提示:
opencv cmake,ubuntu,vscode,opencv
如果输出显示configure down和generating down,代表构建成功。点击底边栏的小齿轮build即可编译。
opencv cmake,ubuntu,vscode,opencv
无误后点击小三角即可运行,弹出你橙的图片:
opencv cmake,ubuntu,vscode,opencv
2022.10.17 补充一点。你们应该注意到了,我这个代码里面读取图片写的是绝对路径。因为有一点诸君一定要注意,就是CMake编译文件夹是这么组织的:
opencv cmake,ubuntu,vscode,opencv
就是,你编译出来的可执行文件在build文件夹下面的Debug文件夹下(如果你选择的优化级别是Release,那么就是在Release文件夹下)。所以你的执行路径不是在工程文件夹根目录,而是在工程根目录\build\Debug\文件夹下。所以你如果读图写的是

img = imread("1.jpg");

那么你必须把图复制一份放到工程根目录\build\Debug\文件夹下,否则必然会报错。比如我上面截的那张图,只有工程根目录\build\Debug\文件夹下的那个map.jpg是有效的,其他几个都是没有用的,这一点务必要注意。如果你觉得拷图片进去麻烦你就写绝对路径,免得生事。

结语:配置教程到这里就结束了,其实还有很多相关知识,我没有写。你们读完也肯定不是立即就都会写cmakelist,但是请自己去查一查,真的不难。而我推荐学习cmake的原因是,它比集成IDE如visual studio、Qt要底层,但是又比makefile要简洁,makefile繁琐至极,visual studio、Qt之类虽然好用,但是作为程序员,编译器怎么找到头文件、怎么找到库文件,什么时候链接库的,都应该知道。而且这个是跨平台的,我这个示例工程拿到unix上一样好用,直接就可以编译,你在visual studio里面配的工程放到ubuntu上面,如果不重新配置,你看能跑不能?

2023/5/24更新:
由于鄙人先前学识所限,说明以下常见问题:文章来源地址https://www.toymoban.com/news/detail-785649.html

  1. 为什么我用vs的编辑器可以build,用装的gcc就不可以呢
    在opencv官网下载的windows安装包,也就是exe那个可以一键安装的,是专供vs编译器使用的,但是其中附带源码,如果你想要用GCC编译器来调用OpenCV也可以,要用GCC编译出静态库方可调用,我这里简述一下:
  • 下载MinGW-posix版本编译器,这个posix是什么呢,就是windows版本下附带多线程库的MinGW,普通版本是不附带多线程库的,编译源代码的时候会报错,这一点一定要注意。
  • 把MinGW套件路径加入环境变量,用CMAKE指定该套件进行编译。
  • 编译出来的库目录加入环境变量,这样MinGW编译你的工程的时候才能链接到库文件,据我试验,CMAKE使用set OpenCV_DIR设定路径对MinGW编译器的target_link_libraries无效,所以需要加入环境变量。
  1. 如果你不放心,你可以把OpenCV_DIR添加到环境变量里面,也就是文中提到的opencv库(cmake引导文件)的路径
  2. 如果你配置遇到问题,请把问题粘贴详细,报错信息、环境信息,不要只说我遇到错了,别人想帮你也帮不了

到了这里,关于Vscode+Cmake配置并运行opencv环境(Windows和Ubuntu大同小异)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Ubuntu 配置OpenCV 环境并在Qt下运行

    之前发过一篇Ubuntu20.04配置OpenCV3.4.14的文章,由于理解有限,其实配置方法不是很好,比如直接将OpenCV直接编译到了/usr/local/路径下,这样做会导致文件夹混乱,最好的方法是自建新一个文件夹并以编译的OpenCV+版本号命名,这样可以方便控制管理。后来和其他同学也讨论了一

    2024年02月16日
    浏览(29)
  • ubuntu 上vscode使用cmake编译运行c++程序

    参考:ubuntu 上vscode使用cmake编译运行c++程序_vscode ubuntu运行c++程序_SCH0的博客-CSDN博客 文章是对官方过程的翻译: Get started with CMake Tools on Linux

    2024年02月07日
    浏览(41)
  • 【opencv C++版本】安装和学习 ==Windows下使用VSCode配置OpenCV开发环境

    ref:https://opencv.org/releases/ ref:https://www.cnblogs.com/ticlab/p/16817542.html c_cpp_properties.json 照着ref 没安装成功,先写个二分查找把 ref:https://docs.opencv.org/4.x/df/d65/tutorial_table_of_content_introduction.html nnd,用这个ref在ubuntu20.04 上安装成功了!!!咳咳咳 ref:https://blog.csdn.net/weixin_4479667

    2024年02月14日
    浏览(41)
  • ubuntu环境通过CMake安装OpenCV

    1:检查CMake是否安装成功 2:检查pkg-config是否安装成功 3:下载OpenCV版本 官网:https://github.com/opencv 从第 3 版开始,OpenCV 已经分成了两个主要部分。 第一部分是包含了 成熟算法的 OpenCV 主源码库,https://github.com/opencv/opencv ,OpenCV 的核心函数,也就是之前下载的内容。 第二部

    2024年02月20日
    浏览(39)
  • ubuntu 搭建 cmake + vscode 的 c/c++ 开发环境

    clang-format c++ 整合 略 只需要安装如下两个插件即可 c/c++ 扩展是为了最基本的代码提示和调试支持 cmake language support 是为了提示 CMakeLists.txt 脚本 有可能安装了 cmake language support 还是没有代码提示, 注意配置 cmake 路径 main.cpp CMakeLists.txt 此时可以通过 终端 菜单的 运行任务 来运

    2024年02月08日
    浏览(37)
  • VSCode-C++环境配置+Cmake

    转载链接 创建CMakeLists.txt

    2024年02月11日
    浏览(27)
  • Windows 环境下,cmake工程导入OpenCV库

            目录 1、下载 OpenCV 库 2、添加搜索路径 3、添加环境变量 4、CmakeLists.txt 配置 (1) 配置步骤 (2) CmakeLists.txt完整配置 OpenCV官方下载地址:download | OpenCV 4.6.0 下载完毕后解压,便可以得到下面的文件 find_package会寻找 findxxx.cmake 或者 xxxConfig.cmake 文件,我们需要提前指明

    2024年02月16日
    浏览(34)
  • Ubuntu使用cmake和vscode开发自己的项目,引用自己的头文件和openCV

    创建文件夹 继续创建include 和 src文件夹,形成如下的目录结构 用vscode打开项目 创建add.h add.cpp main.cpp 形成这样的目录结构 在my_proj中创建CMakeLists.txt,写入如下内容 BUILD_TYPR 设置为Debug可以打断点调试 在my_proj中创建build.sh,写入如下内容 修改build.sh文件的权限 运行build.sh 在

    2024年02月07日
    浏览(32)
  • 1、vscode+cmake c++环境配置

    关于vscode c++环境的配置,应该有两种一种是vscode+c/c++插件,另一种是vscode+cmake插件,第一种没太多用过,感觉就像python那样,要写相关配置文件,有自己的一套规则;另一种就是cmake的规则,目前我也是用的这种,很方便运行和调试,不需要了解vscode的要求。 就是常规的安装

    2024年02月13日
    浏览(39)
  • 【环境配置】Windows 11 的 WSL(Ubuntu2204) 安装OpenCV 4.5.4 (亲测有效)

    直接在 Windows Store 里搜索最新的 Ubuntu版本 22.04 版本进行安装; 在 Powershell 里输入 wsl 进入环境, 无法安装 libjasper-dev 和 libdc1394-22-dev 解决一: sudo vim /etc/apt/sources.list 最后一行加入如下内容并保存退出: deb http://security.ubuntu.com/ubuntu xenial-security main 再执行: sudo apt-get updat

    2024年02月05日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包