By FW.NJU
最近由于要做一个视频监控检测的项目,需要用到opencv,而且要用VS2008开发。但在安装过程中遇到了些问题,现把解决方法写出来希望对大家有所帮助。
opencv在VisualStudio下的配置大同小异,具体可参见:
http://www.opencv.org.cn/index.php/VC.net_2003%E4%B8%8B%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE
其中Opencv2.0的目录和以前版本的有些小不同,比如include文件夹,原来有很多个,现在就有一个,都在安装目录下的include/opencv文件夹下。
下面说说最大的不同。OpenCV2.0没有为VS准备.lib文件,要自己生成。
生成方法:
首先下载CMake,CMake可以自动新建一个VS工程,把OpenCV里面的内容在VS里面编译。其下载地址如下:
http://go2.wordpress.com/?id=725X1342&site=mirror2image.wordpress.com&url=http%3A%2F%2Fwww.cmake.org%2Ffiles%2Fv2.6%2Fcmake-2.6.4-win32-x86.exe
安装CMake后,运行cmake-gui,在Where is the source code 里面填写OpenCV的安装目录,Where to buid the binaries可以填写存放生成的VS工程的目录,如C:/OpenCV2.0/VS2008。单击下面的configure,选择编译环境,如VS2008,转换一会后上面的显示窗口会出现一些配置,用默认的,再次单击configure后generate按键会变成活动的,单击后就可生成OpenCV的VS工程到指定目录。
最后打开生成的VS工程,编译,就可生成相应的Dll和lib文件了。还有,别忘了把他们放到相应的目录下,配置VS找到并链接到这些库。具体做法参见第一个链接,不过他们的名字有些不一样,注意下就行了,就是把原来的xx.lib变成xx200.lib,如果是调试状态,就把xxd.lib变成xx200d.lib。dll文件要到开发文件夹或是系统文件夹下,否则会提示找不到相应的dll。系统搜索dll的方式为:
通过隐式和显式链接,Windows 首先搜索“已知 DLL”,如 Kernel32.dll 和 User32.dll。Windows 然后按下列顺序搜索 DLL:
1、当前进程的可执行模块所在的目录。
2、当前目录。
3、Windows 系统目录。Get System Directory 函数检索此目录的路径。
4、Windows 目录。Get Windows Directory 函数检索此目录的路径。
5、PATH 环境变量中列出的目录。
注意:未使用 LIBPATH 环境变量。