opencv Debug和Release的区别与使用

Release版称为发行版,Debug版称为调试版。

在vs2017上配置opencv的时候,因为附加依赖时会优先考虑写在前面的库。如果先添加了Release库会导致无法使用Debug库编译。所以在配置的时候一般只添加一个库。

但是如果你想Release库和Debug库两种库都想使用,可以使用以下方法。就是把两种文件分开,具体用到哪一个库就配置哪个库。

opencv在vs中出现debug error opencv debug和release_d3


注意:一般文件夹中的排序是opencv_world330.lib文件排在前面,opencv_world330d.lib文件排在后面。所以如果先配置了Release库就无法使用Debug库编译。

具体方法如下:

1.在链接器常规中的附加库目录中添加lib文件。

我的opencv的lib路径为 D:\opencv\build\x64\vc14\lib

opencv在vs中出现debug error opencv debug和release_右键_02

2.在链接器输入选择附加依赖性

opencv中一般会有两种.lib文件:

opencv在vs中出现debug error opencv debug和release_库编译_03

请参考opencv文件夹lib中的.lib文件,opencv版本不同,.lib文件不同。区别330代表3.3.0版本。

其opencv_world330表示Release
opencv_world330d表示Debug

【Release】

如果是选择配置Release库:

首先在D:\opencv\build\x64\vc14\bin中把文件放进一个新建的文件夹中,只留下一种.lib文件(如果是配置Release库就留opencv_world330.lib,配置Debug库就留opencv_world330d.lib)。

opencv在vs中出现debug error opencv debug和release_右键_04

同理,在D:\opencv\build\x64\vc14\lib中也只留一种文件。

opencv在vs中出现debug error opencv debug和release_右键_05


Release|x64下的Microsoft.Cpp.x64.user处右键选择属性

opencv在vs中出现debug error opencv debug和release_右键_06


链接器输入选择附加依赖项,填入opencv_world330.lib

opencv在vs中出现debug error opencv debug和release_d3_07


选择Releasex64

opencv在vs中出现debug error opencv debug和release_d3_08


调试中的开始执行(不调试):

opencv在vs中出现debug error opencv debug和release_库编译_09

Release|x64下的运行结果:

opencv在vs中出现debug error opencv debug和release_库编译_10

[Debug]

如果是选择配置Debug库:

首先在D:\opencv\build\x64\vc14\bin中把文件放进一个新建的文件夹中,只留下一种.lib文件(如果是配置Release库就留opencv_world330.lib,配置Debug库就留opencv_world330d.lib)。

opencv在vs中出现debug error opencv debug和release_右键_11


同理,在D:\opencv\build\x64\vc14\lib中也只留一种文件。

opencv在vs中出现debug error opencv debug和release_右键_12


Debug|x64下的Microsoft.Cpp.x64.user处右键选择属性

opencv在vs中出现debug error opencv debug和release_d3_13


链接器输入选择附加依赖项,填入opencv_world330d.lib

opencv在vs中出现debug error opencv debug和release_d3_14


选择Debugx64

opencv在vs中出现debug error opencv debug和release_右键_15


调试中的开始执行(不调试):

opencv在vs中出现debug error opencv debug和release_右键_16


Debug|x64下的运行结果:

opencv在vs中出现debug error opencv debug和release_右键_17

这样子我们就可以根据需求随时使用两种库来编译了,是不是很方便咧?