vs2010 c语言开发环境变量,Win7 64位环境下OpenCV 3.3.0源码编译及VS2010(VS10)下开发...

摘要:本文介绍了Win7 64位环境下OpenCV 3.3.0从源码开始进行编译并在VS2010(VS10)下开发的全过程,OpenCV 3.3.0的源码除VS10外,还有针对包括VS11、VS12、VS13、VS14等等各种环境的配置选项,本文的步骤也基本同样适用。

一、VS的版本关系

VC10,对应VS2010

VC11,对应VS2012

VC12,对应VS2013

VC14,对应VC2015。

二、为什么要从源码编译

1、OpenCV 3.3.0默认的是带有针对VC14的库,需要用于除VC14外的其他运行时环境;

2、OpenCV 3.3.0默认只带有一个最基础的opencv_world330.lib,在开发中需要用到其他模块;

3、需要进行源码级别的修改;

三、Win7 64位环境下OpenCV 3.3.0在VS2010(VS10)中简单使用的配置

如果只用到基本功能,在已经安装了VS14运行时环境的前提下,无需编译即可使用,参见本博客中的《Win7 64位环境下OpenCV 3.3.0在VS2010(VS10)中简单使用的配置》。如果需要从源码编译或使用除基本模块外的其他功能,可以参照以下的步骤进行。

四、从官网下载源码

从官网下载包含源码的发行包(opencv-3.3.0-vc14.exe):

28dcfe067a36d66c4eca86e0045b7ea1.png

从官网下载OpenCV

五、解压源码

将下载到的压缩包解压到任意目录下,文件结构形如:

c0162931042c554a6e6d174768468daa.png

OpenCV分发包解压后的文件结构

在同一目录下新建build_64和msvc_2010_64两个文件夹,前者作为Cmake编译是用到的临时目录,后者作为保存编译结果的目录,文件结构如图所示:

3f4cb1d963aa8983b38b3187b46aad70.png

在OpenCV 3.3.0分发包中创建编译目录

六、下载并安装CMake

七、使用CMake进行配置

1、打开CMake,设置好source code目录和build目录:

d9c373e09233eed943c53024ede219c6.png

设置CMake的编译目录

2、点击Configure按钮,选择相应的Visual Studio版本,这里选择的是Visual Studio 10 2010 Win64,如图所示:

e749745cf516fa604263e0afeb723864.png

设置CMake的目标环境

3、点击Finish,即开始配置过程(配置过程需要一段时间,注意保证网络的畅通,配置过程中需要下载第三方库),直到配置成功完成:

eb4e432e0acd007c7dc98b2a8fa630ac.png

CMake配置

4、初步配置完成后,将CMAKE_INSTALL_PREFIX修改成之前创建的msvc2010_64目录,该目录中包含编译生成VC10下相关库的VS工程;

5、点击Add Entry按钮,添加CMAKE_DEBUG_POSTFIX选项,值设为字符串类型的“d”,用于区分debug和release版本:

5a0f92027410610928a7c042654e6600.png

CMake配置

6、设置完上述两点后,再次点击Configure按钮,配置完成后点击Generate生成用于真正完成编译工作的Visual Studio工程:

55b6ffb342962c9260f0cd4318db670f.png

CMake配置完成

八、Visual Studio 2010下编译OpenCV源码

1、经过上一步后,我们在build_64目录下即可看到CMake生成的用于编译生成VC10下相关库的Visual Studio工程了,如下图所示:

0a499bdee0a956cd0eff4b6a6485c92a.png

CMake生成的Visual Studio工程

用Visual Studio 2010打开OpenCv.sln,显示“正在分析解决方案中的文件…”,耐心等待解析完成:

cd37a4c909e0afc282c25b1979f87807.png

打开OpenCV的编译工程

2、在解决方案上点击右键->属性,使用“配置管理器”将编译环境将平台选为x64,若无此选项则点击配置管理器选择X64平台;若没有x64则新建一个x64平台即可:

17025b90f04a174361e469f8245ac306.png

设置OpenCV编译工程为x64

3、先在Debug环境下对工程进行编译,解决方案上点击右键->生成解决方案,耐心等待编译完成:

ef5c91a6a0d95edab0f6627e7100d4e2.png

在Visual Studio中编译源码

4、编译完成后,将INSTALL设置为启动工程(在INSTALL项目点击右键->“设为启动项目”):

8fda807378da00c033f4b02cb9980b9b.png

在Visual Studio中编译OpenCV的INSTALL工程

然后进行安装(生成->仅用于项目->仅生成Install):

9c894e023d938928f4f19170383dac3c.png

在Visual Studio中编译OpenCV的INSTALL工程

5、再在Release环境下进行编译和安装(和Debug类似),不再赘述。

八、设置环境变量

安装完成后,在msvs2010_64目录下可以看到一个include文件夹和x64文件夹,与官网分发包中自带的vs14目录结构类似:

f69d8b41718d99bb3fd54c73f764c8c6.png

OpenCV从源码编译后生成的目录结构

我们可以在自己所编译出的在x64目录下逐级找到bin文件夹,将OpenCV的可执行文件(主要是动态链接库)所在的目录加入Path环境变量:

5eddd6b6470f28c699c838574ef75709.png

设置OpenCV环境变量

部分系统下,在环境变量修改后可能需要注销当前Windows用户(或重启)后重新登陆才能生效。如果不设置环境变量,在运行时可能出现“无法启动此程序,因为计算机中丢失opencv_core330d.dll。尝试重新安装该程序以解决此问题”的错误:

0621125eefb9e3b004094383ae01f7bb.png

未正确配置OpenCV环境变量导致的错误

四、在Visual Studio 2010中配置OpenCV 3.3.0开发环境

本文示例使用的Visual Studio版本如下所示:

b6d9a0cdacfcce118923c65b6ef58596.png

本文使用的Visual Stuido 2010(VC10)版本

创建一个示例工程,控制台应用程序,VCR_exe:

9f6509796064460c917f832a3f82d554.png

新建一个OpenCV示例工程

1、配置头文件路径

用于指定Visual Studio在什么地方寻找OpenCV的头文件。打开Visual Studio 2010,选择菜单“项目”->“** 属性”:

43caf5145226afb0341aadf4dd474170.png

项目属性

在其中找到“配置属性”->“VC++目录”->“包含目录”,向其中增加三个目录:

F:\opencv\msvc_2010_64\include\include;

F:\opencv\msvc_2010_64\include\opencv;

F:\opencv\msvc_2010_64\include\opencv2;

945c975599e8b9adfde6a29b01f574cf.png

在Visual Studio中设置OpenCV头文件目录

2、配置静态链接库文件路径

用于指定Visual Studio在什么地方寻找OpenCV的库文件。

将库目录加入到“工具”->“选项”->“项目和解决方案”->“VC++目录”->“库目录” 中,如下图所示:

41de70faa8b9e6c52c24e7fb16b0817d.png

在Visual Studio中设置OpenCV库文件路径

3、配置附加依赖项

用于指定所使用的静态链接库,如果不指定则会在链接时报找不到形如“error LNK2001: 无法解析的外部符号”、“error LNK2019: 无法解析的外部符号 cvBoundingRect,该符号在函数*中被引用”等的错误,如下图所示:

0c171667c451ef6109b759f895cdcfbd.png

缺少OpenCV附加依赖项导致的链接错误

在“项目”->“** 属性”->“配置属性”->“链接器”->“输入”->“附加依赖项”中加入编译出的如下静态链接库: opencv_calib3d330d.lib

opencv_core330d.lib

opencv_dnn330d.lib

opencv_features2d330d.lib

opencv_flann330d.lib

opencv_highgui330d.lib

opencv_imgcodecs330d.lib

opencv_imgproc330d.lib

opencv_ml330d.lib

opencv_objdetect330d.lib

opencv_photo330d.lib

opencv_shape330d.lib

opencv_stitching330d.lib

opencv_superres330d.lib

opencv_video330d.lib

opencv_videoio330d.lib

opencv_videostab330d.lib

0e2df2274fddf07c785b5a00f14eec61.png

在Viusal Studio中增加OpenCV的附加依赖项

4、如有必要修改编译环境为x64

在打开部分已经存在的项目或默认使用的是Win32时,通过“配置管理器”将编译环境修改为x64,如下图所示(如果没有x64则通过“新建”新建一个即可):

4f84e0ea0819024df6013a3f3c6d3d4e.png

在Visual Studio中设置OpenCV x64的编译环境

五、使用如下的代码验证OpenCV开发环境的可用性

df1245d7521ef1773deac03926f7e6a3.png

OpenCV测试代码

如果环境正常则将出现如下的输出:

f7dfacb350ac9a0b9d47ce3a5f80bdd2.png

OpenCV开发环境正常时的输出

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值