win10 VS2015+OpenCV4.1.2一劳永逸的永久性配置方式及不同OpenCV版本之间的无缝切换
win10 VS2015+OpenCV4.1.2 完整详细一劳永逸的永久性配置方式
OpenCV官网:Releases - OpenCV,下载OpenCV后直接解压就可以了。
一、环境变量配置
1、用户变量设置
添加用户变量:OpenCV_PATHhj(自己定名字,我的是OpenCV_PATHhj)
用户变量值:
D:\Program Files\OpenCV\opencv4.1.2\opencv\build
D:\Program Files\OpenCV\opencv4.1.2\opencv\build\x64\vc15\bin
(用哪个版本的OpenCV就配置哪个版本,也可以配置多个,版本间无缝切换)
将添加的用户变量应用到PATH下;%OpenCV_PATHhj%
也可以直接在PATH后添加下面的变量值:
D:\Program Files\OpenCV\opencv4.1.2\opencv\build
D:\Program Files\OpenCV\opencv4.1.2\opencv\build\x64\vc15\bin
注:vc10表示VS是2010,vc11对应VS2012,vc12对应VS2013,vc14对应VS2015 ,vc15对应VS2017
2、系统变量设置【不配置用户变量,只配置系统变量好像也是可以的】
添加系统变量:
(1)可以直接在PATH后添加下面的变量值,以英文 ; 隔开:
D:\Program Files\OpenCV\opencv4.1.2\opencv\build\x64\vc15\bin
(2)如果要添加的变量值较多,也可以添加变量-值对,再将变量名添加到系统变量的Path中。(我采用的是第二种)
新建系统变量,输入变量名:OpenCV_PATHhj(自己定名字,我的是OpenCV_PATHhj)
输入变量值:D:\Program Files\OpenCV\opencv4.1.2\opencv\build\x64\vc15\bin
在系统变量Path后添加:%OpenCV_PATHhj%
做完上面的配置后,OpenCV的环境变量就配置完。(有说要重启才生效,但我没重启,发现也是可以的)
二、配置属性表
系统的默认属性表一般是位于:C:\Users\用户名\AppData\Local\Microsoft\MSBuild\v4.0
我的是位于:C:\Users\lenovo\AppData\Local\Microsoft\MSBuild\v4.0
属性表名称:Microsoft.Cpp.Win32.user.props(x86属性表)
Microsoft.Cpp.x64.user.props(x64属性表)
更改属性表之前建议先备份一份(以防万一改错了)。
以记事本方式打开属性表文件,将以下内容添加到:Microsoft.Cpp.x64.user.props中
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<IncludePath>D:\Program Files\OpenCV\opencv4.1.2\opencv\build\include\opencv2;D:\Program Files\OpenCV\opencv4.1.2\opencv\build\include;$(IncludePath)</IncludePath>
<LibraryPath>D:\Program Files\OpenCV\opencv4.1.2\opencv\build\x64\vc14\lib;D:\Program Files\OpenCV\opencv4.1.2\opencv\build\x64\vc15\lib;$(LibraryPath)</LibraryPath>
</PropertyGroup>
<ItemDefinitionGroup>
<Link>
<AdditionalDependencies>opencv_world412.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
</Project>
三、验证是否配置成功
1、新建win32控制台工程
下一步-->下一步-->完成
在项目名称上右键-->属性-->配置属性-->VC++目录
包含目录中有以下内容:
D:\Program Files\OpenCV\opencv4.1.2\opencv\build\include\opencv2
D:\Program Files\OpenCV\opencv4.1.2\opencv\build\include
库目录中有以下内容:
D:\Program Files\OpenCV\opencv4.1.2\opencv\build\x64\vc15\lib
在项目名称上右键-->属性-->配置属性-->链接器-->输入
附加依赖项:opencv_world412.lib
如果有这些内容,表示属性表配置成功。
2、验证所有的配置是否配置成功
在项目工程的主函数中添加以下代码:
// test_opencv.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <opencv2\core\core.hpp>
#include <opencv2\highgui\highgui.hpp>
#include <opencv2\imgproc\imgproc.hpp>
using namespace cv;
#include <iostream>
using namespace std;
int main()
{
Mat src;
src = imread("D:\\E_data\\MyTest\\_MyWork\\test_opencv\\dog.bmp");
namedWindow("source", 0);
imshow("source", src);
waitKey(0);
return 0;
}
生成解决方案,运行程序后出现以下图像,表示OpenCV所有的配置都是配置成功的,并且下次再建工程时,是不需要再重新配置环境的,默认是OpenCV4.1.2的环境。
运行模式:Release x64
现在介绍另外一种配置方式可以实现OpenCV不同版本之间的无缝切换:
一、环境变量配置
基本与上面一样,要实现多少个版本的OpenCV之间切换,就要添加多少个相应的环境变量到Path中。
二、配置属性表
步骤二不太一样
系统的默认属性表不要去篡改,直接将以下两个属性表复制一份,拷贝出来放到其他的盘。
Microsoft.Cpp.Win32.user.props
Microsoft.Cpp.x64.user.props
为了便于区分可以更改属性表的文件名称:(我的如下)
分别编辑属性表的内容
以下是OpenCV4.1.2两种运行模式下的属性表:
运行模式:Debug x64,在OpenCV4.1.2_x64Debug.props中添加以下内容:
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<IncludePath>D:\Program Files\OpenCV\opencv4.1.2\opencv\build\include\opencv2;D:\Program Files\OpenCV\opencv4.1.2\opencv\build\include;$(IncludePath)</IncludePath>
<LibraryPath>D:\Program Files\OpenCV\opencv4.1.2\opencv\build\x64\vc14\lib;D:\Program Files\OpenCV\opencv4.1.2\opencv\build\x64\vc15\lib;$(LibraryPath)</LibraryPath>
</PropertyGroup>
<ItemDefinitionGroup>
<Link>
<AdditionalDependencies>opencv_world412d.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
</Project>
运行模式:Release x64,在OpenCV4.1.2_x64Release.props中添加以下内容:
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<IncludePath>D:\Program Files\OpenCV\opencv4.1.2\opencv\build\include\opencv2;D:\Program Files\OpenCV\opencv4.1.2\opencv\build\include;$(IncludePath)</IncludePath>
<LibraryPath>D:\Program Files\OpenCV\opencv4.1.2\opencv\build\x64\vc14\lib;D:\Program Files\OpenCV\opencv4.1.2\opencv\build\x64\vc15\lib;$(LibraryPath)</LibraryPath>
</PropertyGroup>
<ItemDefinitionGroup>
<Link>
<AdditionalDependencies>opencv_world412.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
</Project>
需要使用多少个版本的OpenCV,就相应的需要像这样的配置多少个版本的属性表。
以下是OpenCV3.4.0两种运行模式下的属性表:
运行模式:Debug x64,在opencv3.4.0_x64Debug.props中添加以下内容:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets" />
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<IncludePath>D:\Program Files\OpenCV\opencv3.4.0\opencv\build\include;D:\Program Files\OpenCV\opencv3.4.0\opencv\build\include\opencv;D:\Program Files\OpenCV\opencv3.4.0\opencv\build\include\opencv2;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\include;$(IncludePath)</IncludePath>
<LibraryPath>D:\Program Files\OpenCV\opencv3.4.0\opencv\build\x64\vc14\lib;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\lib\x64;$(LibraryPath)</LibraryPath>
</PropertyGroup>
<ItemDefinitionGroup>
<Link>
<AdditionalDependencies>opencv_world340d.lib;cublas.lib;cuda.lib;cudadevrt.lib;cudart.lib;cudart_static.lib;nvcuvid.lib;OpenCL.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup />
</Project>
运行模式:Release x64,在OpenCV3.4.0_x64Release.props中添加以下内容:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets" />
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<IncludePath>D:\Program Files\OpenCV\opencv3.4.0\opencv\build\include;D:\Program Files\OpenCV\opencv3.4.0\opencv\build\include\opencv;D:\Program Files\OpenCV\opencv3.4.0\opencv\build\include\opencv2;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\include;$(IncludePath)</IncludePath>
<LibraryPath>D:\Program Files\OpenCV\opencv3.4.0\opencv\build\x64\vc14\lib;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\lib\x64;$(LibraryPath)</LibraryPath>
</PropertyGroup>
<ItemDefinitionGroup>
<Link>
<AdditionalDependencies>opencv_world340.lib;cublas.lib;cuda.lib;cudadevrt.lib;cudart.lib;cudart_static.lib;nvcuvid.lib;OpenCL.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup />
</Project>
三、验证是否配置成功
1、新建win32控制台工程(与上面一样)
这个时候再去看以下目录,发现里面是没有与OpenCV相关的内容的。
在项目名称上右键-->属性-->配置属性-->VC++目录
包含目录中有以下内容:
D:\Program Files\OpenCV\opencv4.1.2\opencv\build\include\opencv2
D:\Program Files\OpenCV\opencv4.1.2\opencv\build\include
库目录中有以下内容:
D:\Program Files\OpenCV\opencv4.1.2\opencv\build\x64\vc15\lib
在项目名称上右键-->属性-->配置属性-->链接器-->输入
附加依赖项:opencv_world412.lib
2、添加属性表
从属性管理器中添加属性表,使用哪个编译模式就添加那个属性表,如下图:
(右键-->添加现有属性表)
要使用哪个版本的OpenCV就添加哪个版本的属性表,由此来实现OpenCV不同版本之间的切换。
再去查看包含目录、库目录、附加依赖项里面就有与OpenCV相关联的内容。
2、验证所有的配置是否配置成功
在项目工程的主函数中添加代码(与上面一样)
选择相应的运行模式,直接运行工程,成功显示图片,则表示配置成功。
-
耐心是一切聪明才智的基础。