文章主要就以下两种情况提出解决方法:
情况一:将在自己电脑上可以运行的基于opencv的工程拷贝到别人(主要是老师)电脑上,免去别人对库文件和目录文件以及lib的配置。
情况二:将在自己电脑上可以运行的基于opencv的程序(exe)拷贝到没有装有cv库的电脑上做演示运行。
一、首先就情况一展示下自己的具体配置过程:配置原理可参考这篇文章 。
1 将\opencv\build目录下的include文件夹及\opencv\build\x86\vc10下的bin和lib文件夹拷贝到工程所在目录(及C++ Project或stdafx.h所在的那一级目录)。
2 添加目录,为了实现情况一,需要用相对路径,先相对路径进行下科普,'.\'代表本级目录,'..\'代表上级目录,注意:'\'是VC保留字,所以在你写程序时要用到'\'时就要用'\\'代替。网络路径用'/'。具体的配置如下图:
Link的配置如往常一样,只需加入这些常用lib:
opencv_nonfree243d.lib
opencv_legacy243d.lib
opencv_imgproc243d.lib
opencv_core243d.lib
opencv_highgui243d.lib
opencv_video243d.lib
opencv_ml243d.lib
opencv_features2d243d.lib
2 编译后然后把相应的dll文件放到exe所在目录就ok了;但如果dll太多,这样看起来现的很臃肿,想要把dll文件集中的各个不同的文件夹,然后让程序运行时去选择,一种方法是设置环境变量,但问题来了,不能说到了老师那里你再去当场配置环境变量,如果对方没有相应的库,更别提会有相应的环境变量设置。
解决方法是做如下配置(前提是已经按步骤1将dll所在文件夹bin拷贝到了工程所在目录):
即,在Environment选项中设置path,这样也可以使用多个文件夹中的dll。简洁清晰。
3 做了以上配置后就可以编译运行了。