c源码编译教程-Windows下C++openCV配置及x86编译(傻瓜教程)

倒计时结束后,将进入手动下载

下载后,将文件复制到您熟悉的文件夹中,方便以后使用。

我直接在桌面上新建了一个名为opencv的文件夹,用来存放这次配置opencv需要的所有文件。

二:安装opencv

双击

安装,这个安装过程也是完全傻瓜式的,只是需要注意一件事,opencv安装目录下不应该有英文路径。

如图所示,我的安装目录如下。 由于本次安装的是4.5.5版本,所以我直接将目录重命名为opencv455,以便于理解。

三:配置opencv环境变量,测试opencvx64库

此笔记本->右键属性->中间系统设置->环境变量

按照以下步骤配置环境变量

我已经配置了一个名为 OpenCV455_x64_vs2017 的变量

接下来,将此变量添加到环境变量中。 双击Path,将OpenCV455_x64_vs2017添加到Path环境变量中。

四:配置vs项目环境,调用opencv库

下面我使用vs2019调用opencvx64库

c源码编译教程-Windows下C++openCV配置及x86编译(傻瓜教程)

可以看到安装的opencv文件夹中有一个目录:

该目录下有vc14和vc15两个目录。 这两个目录分别存放vs2015编译的库和vs2017编译的库。 这里我们测试vc15(vs2017)的库

使用vs2019创建一个win32控制台空项目程序,添加cpp文件,在文件中添加以下代码:

#include   
#include   
#include   
using namespace cv;
int main()
{
	// 读入一张图片(poyanghu缩小图)    
	Mat img = imread("C:\Users\ljl\Desktop\桌面杂物箱\ascii码表.jpg");
	// 创建一个名为 "图片"窗口    
	namedWindow("图片");
	// 在窗口中显示图片   
	imshow("图片", img);
	// 等待6000 ms后窗口自动关闭    
	waitKey(60000);
	return 0;
}

此时项目结构如下:

由于我们测试的是x64库,所以这里必须选择x64。

ps:其实我们都知道64位系统可以兼容32位程序,并且记住这是针对系统而言的,我们使用的IDE需要明确区分32位和64位,其中涉及到编译过程。 在我的工作经验中,x64程序无法调用32位动态库。

在项目属性中配置opencv库,配置如下

在包含目录中添加:

D:openCVopencv455buildincludeopencv2

D:openCVopencv455buildinclude

在库目录中添加:

D:openCVopencv455buildx64vc15lib

在Linker->Input->Additional Dependency中添加opencv_world455d.lib

虽然从里面的配置可以看出,但是这次是隐式调用了动态库。 关于动态库的调用方法,可以学习如下

C++动态函数库的创建和调用(.def) VS2005环境下写的一个简单的动态库的方式,上面有两个函数,可以实现乘法和除法。 首先创建一个空的项目dll,创建头文件,然后创建源文件,然后创建模块定义文件,即.def文件。 创建动态库所需的条件已满足。 在头文件中写入以下代码 在源文件中写入以下代码 在源文件 F7 的模块定义文件中写入以下代码,生成动态库 .def 中第一行是数据库名称,No... 。

c源码编译教程-Windows下C++openCV配置及x86编译(傻瓜教程)

配置好环境后,编译程序,将opencv_world455d.dll复制到程序生成目录下。

运行如下

这说明opencv调用正常了c源码编译教程,以后使用opencv的时候只需要这样配置就可以了。

这里为什么可以用vs2019来调用,但是文章一开始就要求IDE必须是vs2015/2017,因为调用别人的库只要配置好环境就可以在任何IDE中调用。 现在我们要编译x86库,我们必须使用vs2015/2017。 事实上,你注意到我们下载的opencv可执行程序的名称很奇怪。

文件名表明这个版本的opencv只兼容vc14和vc15,那么它们是什么意思呢?

vc 7 :	Visual Studio2003
vc 8 :	Visual Studio2005
vc 9 :	Visual Studio2007
vc 10:	Visual Studio2009
vc 11:	Visual Studio2011
vc 12:	Visual Studio2013
vc 14:	Visual Studio2015
vc 15:	Visual Studio2017

也就是说,如果要编译这个版本的opencv源码,就必须使用vc14或者vc15工作环境。

我们都知道C++项目开发首先需要统一的是开发工具。 不同的开发工具使用不同的编译环境。 虽然编译环境可以自动改变,而且要花不少功夫,但opencv总共有300+个编译项目。 如果我们不知道项目配置,就乖乖使用opencv官网推荐的版本来编译。 我尝试使用vs2019编译,但以失败告终。 不要用你的聪明来挑战IDE之间的差异

五:编译opencvx86版本

设计条件:下载cmake

下载|CMake

下载箭头所指的cmake版本并安装

安装在D盘根目录

安装完成后,打开以下程序

打开后界面如下图

以上是使用cmake时需要注意的几点。 与命令行相比,cmake的UI界面变得相当容易理解。

好了,现在开始opencv的x86编译

安装opencv的时候本地已经安装了opencv的源码位置。 找到步骤2中你安装opencv的目录,如下

点击finish开始编译

可以通过stop来停止。 这里我们等待一段时间让它执行完成。

这里表示执行结束

检查以下两个配置

其余使用默认配置即可

然后点击Generate两次(编译一次完成再点击编译)。 编译完成。 (注:这个过程可能会报错,不需要开会)。

这意味着项目建立完成

接下来使用vs2017编译生成动态库。

项目打开后如图所示,我们需要的是32位版本。 这里我们选择x86或者win32。 它们之间的具体区别如下

编译release32位版本

经过漫长的等待,终于编译完成了。 非常完美,没有报告任何错误。

编译成功后,在解决方案资源管理器—>CMakeTargets—>INSTALL—>右键INSTALL—>only forprojects—>onlygenerateINSTALL

然后打开cmake生成文件的存放路径文件夹,找到install文件夹,上面的x86就是我们需要的

好了,现在release版本编译完成了,我们来编译debug版本

CMakeTargets—>INSTALL—>右键INSTALL—>仅适用于项目—>仅生成INSTALL

进入cmake生成文件的存放路径文件夹,找到install文件夹,查看上面的x86文件夹

这两个动态库就是我们需要的,其中opencv_world455.dll是release版本c源码编译教程,opencv_world455d.dll是debug版本。

接下来使用前面的四个:配置vs项目环境,调用opencv库测试这两个库是否可以使用

这次使用vs2017测试

首先复制生成的文件,以便我们配置环境变量

将安装目录中的 x86 复制到构建目录

这样我们自己编译的x86和opencv官网编译的x64就在同一个目录了,是不是更方便呢?

配置环境变量的步骤请参见第4部分。

打开vs2017,新建一个win32控制台空项目(过程与第四部分一模一样)

启动vs项目配置,使用opencv库(debugx86配置)

附加文件目录

D:openCVopencv455buildinclude

D:openCVopencv455buildincludeopencv2

附加库目录 D:openCVopencv455buildx86vc15lib

附加依赖opencv_world455d.lib(名字带d的意思是调试库)

编译成功生成x86版本的调试程序,并将opencv_world455d.dll复制到程序目录下。

以上说明我们编译成功的opencvx86库

如果你聪明的话,应该能够触类旁通地测试一下release版本吧?

多于

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 源码编译 c源码编译教程-Windows下C++openCV配置及x86编译(傻瓜教程) https://www.wkzy.net/game/196021.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务