vs2015学习opencv330_64位的工程配置

0、一个项目的结构:主函数文件+第三方依赖库,第三方依赖库一般包含有头文件、Release和Debug的库(windows:.lib,linux:.a)、Release和Debug的运行库(windows:.dll,linux:.so)。编译一个库的时候,需要告诉编译器当前编译库的依赖库的头文件目录。编译主函数文件且链接生成可执行程序时,需要告诉编译器主函数依赖库的头文件目录,可执行程序依赖库的库目录、依赖库的库名称。运行可执行程序的时候,需要指定可执行程序依赖的第三方运行库路径。在linux下一般使用Makefile来管理编译整个项目源码,在windows下则使用IDE集成软件管理项目,如vs2015。当然linux和windows下还有很多IDE集成软件来管理项目。

1、安装vs2015。

2、新建一个工作目录如:D:\work\opencv

3、下载opencv330_x64_vc14的库和头文件。

在工作目录下新建一个文件夹来存放opencv的头文件和库如:D:\work\opencv\Opencv330

下载地址:

官网:https://sourceforge.net/projects/opencvlibrary/files/opencv-win/3.3.0/opencv-3.3.0-vc14.exe/download   将下载的exe文件直接解压,将会得到源码、及一些库,这里只需要opencv330_x64_vc14的库和对应的头文件。将include和x64目录拷贝到D:\work\opencv\Opencv330目录下。

vs2015学习opencv330_64位的工程配置_第1张图片

vs2015学习opencv330_64位的工程配置_第2张图片

4、打开vs2015

新建一个空白解决方案,位置选择我们的工作目录,名称为Project。

vs2015学习opencv330_64位的工程配置_第3张图片

在解决方案里新建一个项目。项目选择visualc++     Win32控制台应用程序,名称为Main的空项目。

vs2015学习opencv330_64位的工程配置_第4张图片

vs2015学习opencv330_64位的工程配置_第5张图片

在我们的工作目录下新建一个目录Main,在Main目录下新建一个main.cpp文件,然后直接将main.cpp文件拖到Main项目的源文件里。

vs2015学习opencv330_64位的工程配置_第6张图片

编辑main.cpp

#include 

#include "opencv2/core.hpp"
#include "opencv2/imgcodecs.hpp"
#include "opencv2/highgui.hpp"

using namespace cv;

void showImg()
{
	char* imageName = "test.jpg";
	Mat image;

	//read image
	image = imread(imageName, CV_LOAD_IMAGE_COLOR);//读取图片
	if (!image.data)
	{
		printf("Error loading image \n");
		return ;
	}

	//create window
	namedWindow(imageName, CV_WINDOW_AUTOSIZE);

	//show image
	imshow(imageName, image);

	//save image
	imwrite("testbak.jpg", image);

	//0:wait key 
	waitKey(0);

	return ;
}

int main(int argc, char** argv)
{
	showImg();

	return 0;
}

注意:main.cpp里将要读取一张test.jpg的图片并且显示它,然后再备份一张testbak.jpg图片。所以需要将一张test.jpg图片放到我们的Main工程下

vs2015学习opencv330_64位的工程配置_第7张图片

至此,我们的工作目录和vs工程如下图:

vs2015学习opencv330_64位的工程配置_第8张图片

vs2015学习opencv330_64位的工程配置_第9张图片

接下来需要配置Main项目的头文件依赖目录,因为我们的main.cpp依赖opencv,所以需要将opencv的头文件目录添加到项目中,右击Main项目,属性,配置选择所有配置,平台选择x64。然后选择VC++目录,包含目录,编辑,找到我们工程目录下的Opencv330的include目录,然后使用宏SolutionDir来替换绝对路径,这样工程拷贝到其他电脑也是可以直接打开使用的。

vs2015学习opencv330_64位的工程配置_第10张图片

然后设置Main项目的库依赖目录及库输入项

Release和Debug的库依赖目录是一样的,所以配置选择所有配置,见图:

vs2015学习opencv330_64位的工程配置_第11张图片

Release和Debug的输入的附加依赖项是不一样的,一般第三方库都会提供Release版本和Debug版本,Debug版本的库的名字只是在Release版本的库的名字后面加一个d。

注意:这里还加了一个系统库legacy_stdio_definitions.lib,是为了解决标准库找不到的问题,没有这个库,printf可能链接不通过。

vs2015学习opencv330_64位的工程配置_第12张图片

vs2015学习opencv330_64位的工程配置_第13张图片

接下来,生成解决方案就可以生成可执行程序了。但是运行可执行程序还需要依赖的dll。下面设置opencv依赖的dll路径,手打的话别忘了最后的一个分号。

vs2015学习opencv330_64位的工程配置_第14张图片

至此配置完成,点击本地Windows调试器执行程序,显示图片,然后在Main工程目录下会生成一张testbak.jpg图片。

vs2015学习opencv330_64位的工程配置_第15张图片

如果想在工作目录中找到可执行程序运行的话,需要将所需的dll拷贝到可执行程序exe的当前目录下,并且如果拷贝了dll到exe目录下,则vs工程配置里就不需要设置dll路径了。

附:工程下载地址:http://pan.baidu.com/s/1gfgn1Az

至此,vs2015使用第三方库基本就是这个流程。

vs2015新建一个库,指定库的依赖头文件,库的输出路径及输出名的配置可以研究一下,后面有机会再讲解。

你可能感兴趣的:(#,opencv)