脱离本地opencv环境运行opencv程序

脱离本地opencv环境运行opencv程序

参考资料: https://blog.csdn.net/m_buddy/article/details/78448347.
在编写图像处理软件时通常会用到opencv,而opencv代码完成后需要到别的电脑去演示,由于演示的电脑没有配置与原电脑一样的opencv环境就会出现这样的错误。
脱离本地opencv环境运行opencv程序_第1张图片
要解决这个问题,使opencv程序脱离opencv环境运行,一般有两种方法:
1、动态链接opencv。即将相应的dll文件拷贝到相应的exe所在目录,然后一起拿到目标电脑运行。
2、静态编译。即将相应的dll文件打包进exe中,然后直接拷贝exe到目标电脑上运行。
这里以vs2013+opecv2.4.12编写的win32控制台程序为例介绍静态编译的过程:

Release模式

配置包含目录
首先要配置包含目录,通用属性 -> VC++目录 -> 包含目录
脱离本地opencv环境运行opencv程序_第2张图片
配置库目录
接着配置库目录,通用属性 -> VC++目录 -> 库目录
脱离本地opencv环境运行opencv程序_第3张图片
这里一定要选择staticlib。
如果在编译时出现“无法打开文件“libcpmt.lib”的错误”,则还应加上 ( V C L i b r a r y P a t h x 86 ) , (VC_LibraryPath_x86), (VCLibraryPathx86)(WindowsSDK_LibraryPath_x86)。
在这里插入图片描述
配置代码生成
C/C++ -> 代码生成 -> 运行库 -> 多线程(/MT)
其中,多线程调试Dll (/MDd) 对应——-MD_DynamicDebug
多线程Dll (/MD) 对应————-MD_DynamicRelease
多线程(/MT) 对应—————–MD_StaticRelease
多线程(/MTd)对应—————-MD_StaticDebug
即D用于动态,T用于静态,带d的是debug模式的 ,不带d的是release模式。
脱离本地opencv环境运行opencv程序_第4张图片
配置连接器
最后配置连接器。
脱离本地opencv环境运行opencv程序_第5张图片
连接器 -> 输入 -> 附加依赖项
opencv_calib3d2412.lib
opencv_contrib2412.lib
opencv_core2412.lib
opencv_features2d2412.lib
opencv_flann2412.lib
opencv_gpu2412.lib
opencv_highgui2412.lib
opencv_imgproc2412.lib
opencv_legacy2412.lib
opencv_ml2412.lib
opencv_nonfree2412.lib
opencv_objdetect2412.lib
opencv_ocl2412.lib
opencv_photo2412.lib
opencv_stitching2412.lib
opencv_superres2412.lib
opencv_ts2412.lib
opencv_video2412.lib
opencv_videostab2412.lib
IlmImf.lib
libjasper.lib
libjpeg.lib
libpng.lib
libtiff.lib
zlib.lib
在这里插入图片描述
如果编译时出现上图“无法解析的外部符号xxx”的错误,则附加依赖项还需再添加以下几个文件
kernel32.lib
user32.lib
gdi32.lib
winspool.lib
comdlg32.lib
advapi32.lib
shell32.lib
ole32.lib
oleaut32.lib
uuid.lib
odbc32.lib
odbccp32.lib
配置好后点击“生成->生成解决方案”即可生成相应的exe文件。

你可能感兴趣的:(VS)