vs2019永久配置opencv开发环境的方法步骤
作者:Gil Zhang 发布时间:2023-11-02 19:38:58
有很多同学肯定想学习opencv相关的知识,但是有些情况下每建一次项目都要重新引入下各种文件是不是很苦恼,所以我也面临了这个问题,在网上看到很多的同学的方法,有的也都是很一样的,将什么.dll加入环境变量,然后设置项目配置文件什么的,这些东西我也尝试过,但是很容易忘记,我也特意写了一些笔记,但是有时还是会忘记。恰巧我也升级了vs2019,所以也打算更新下方法,做到一劳永逸。下面是教程部分。首先我们要安装好我们的opencv,然后我们安装以后会看到生成的文件夹。如图
这一切就是基础文件,所以这个务必要准备好。其次就是准备好vs2019.然后勾选上c++桌面开发相关的东西。 当然了 我们需要准备一个控制台程序,就是hello world那个程序。然后将如图的路径加入到系统环境变量里。如果项目已经建好了,请重启vs重新加载系统变量。
剩下的就是一些骚操作了。请注意观看,直接右击项目,然后进入属性设置。 需要注意的选项我都标出来了。
首先进入包包含目录。我看标出的这个目录比较眉清目秀,所以我选择了它。复制下来,从资源管理器进入这个目录。
进入之后,可以看到如图所示标出的文件夹是不是似曾相识,没错,就是我们安装的opencv的build目录下的include目录里的内容。这里面的东西大家应该很清楚吧,就是opencv用到的头文件都在这里面。所以把它复制进来,我们建项目时候就不会报头文件找不到的bug了。
包包含目录只需要做这步就好了。下面是库目录,做法和上面的类似,选个眉清目秀的目录进去。我选的还是第一个目录。
进入目录可以看到如下的目录结构,所以我们把opencv \opencv\build\x64\vc14\lib 目录里的两个库文件给拷到了这个目录里。
现在是又有头文件,又有库文件了吧,按理说我们应该是可以搞一波了,不信我们我贴个例子试一试。我贴了一个 opencv扫二维码的例子,结果报错,编译不过,这太伤人心了。
看了这么多我都慌了,这什么情况,要不不学了吧,我想说大家别慌,继续往下做。提示是无法解析各种东西,这个问题的原因就是我们少做了一样。是什么呢?我们在项目属性里,把链接器里的输入里的附加依赖项点开。
图上有两个文件,一个带d一个不带d带d的表示在debug模式下用,不带d的表示在release模式下用。记住一次放一个文件就好了,只要对应了模式就行。
设置完了,然后贴上代码,效果如下图。如果我的脸是个二维码就可以在控制台输入内容了。
教程到这里是结束了,我们要注意的东西,就是前两步导入头文件和库文件是一次修改,一直有效果,然后链接器里的附加依赖项是需要我们每次建项目都要注意的,所以大家最后一步一定要记得在哪里设置。例子使用的是如图所示的代码。
来源:https://blog.csdn.net/weixin_43500426/article/details/89048402
猜你喜欢
- 概述日常工作中,我们经常会有发送 HTTP 网络请求的需求,概括下我们常见的发送 HTTP 请求的需求内容:可以发送基本的 GET/POST
- 一、简介Android的消息机制主要是指Handler的运行机制,那么什么是Handler的运行机制那?通俗的来讲就是,使用Handler将
- 重新认识 Java 的 System.in以前也写过不少命令行的程序,处理文件时总需要通过参数指定路径,直到今天看资料时发现了一种我自己从来
- 一、概念 1. 为了能让程序操作数据库,对数据库中的表进行操作,每一种数据库都会提供一套连接和操作该数据库的驱动,而且每种数据库
- AndroidStduio3.0使用gradle将module打包jar文件,首先需要安装gradle。打开控制台输入  
- 1、一个示例回顾Future一些业务场景我们需要使用多线程异步执行任务,加快任务执行速度。JDK5新增了Future接口,用于描述一个异步计
- 更新: 工作中突然想起来,关于Yaml的使用,并不属于Spring的范畴,是org.yaml.snakeyaml处理的。所以yaml的使用应
- 工作中有做过手机App项目,前端和android或ios程序员配合完成整个项目的开发,开发过程中与ios程序配合基本没什么问题,而andro
- 话不多说,请看代码:<!DOCTYPE html><html><head> <meta
- 最近在看《.NET游戏编程入门经典 C#篇》 第一章介绍了如何制作俄罗斯方块,自己试了试按照书上的步骤,可算是完成了。于是写下这篇文章留作纪
- 策略模式的应用场景策略模式是否要使用,取决于业务场景是否符合,有没有必要。是否符合如果业务是处于不同的场景时,采取不同的处理方式的话,就满足
- 1.强引用( Strong Reference )最普遍的引用:Object obj=new Object()抛出OutOfMemoryEr
- Tomcat 如何实现WebSocketWebSocket协议属于HTML5标准,越来越多浏览器已经原生支持WebSocket,它能让客户端
- 容器适配器我们可以看出,栈中没有空间配置器(内存池),而是适配器适配器是一种设计模式(设计模式是一套被反复使用的、多数人知晓的、经过分类编目
- 一、前言最近写了个项目,前端还没写,需要部署到服务器给女朋友实现前端,可是不熟悉Linux的我,蹑手蹑脚,真的是每一步都是bug,可谓是步步
- 【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1
- 背景大家在使用Selenium + Chromedriver爬取网站信息的时候,以为这样就能做到不被网站的反爬虫机制发现。但是实际上很多参数
- 1 简介Solace是一个强大的实时性的事件驱动消息队列。本文将介绍如何在Spring中使用,虽然代码使用的是Spring Boot,但并没
- Android手势解锁本文讲述的是一个手势解锁的库,可以定制显示隐藏宫格点、路径、并且带有小九宫格显示图,和震动!让你学会使用这个简单,高效
- 我们知道,进入百度图片后,输入一个关键字后,首先看到的是很多缩略图,当我们点击某张缩略图时,我们就可以进入到大图显示页面,在大图显示页面,中