用VC2008编译最新SVN版本OpenCV源代码
1. 用subversion软件下载最新的OpenCV源文件,下载地址:
https://opencvlibrary.svn.sourceforge.net/svnroot/opencvlibrary/trunk
下载下来的源代码在目录名opencvlibrary下面,主要有两个目录opencv和opencv_extra目录,只编译opencv目录,将该目录复制到自己指定的目录如D:/Program Files/opencv。
2. 使用CMake建立VC工程文件
2.1 运行Cmake gui
Where is the source code: D:/Program Files/opencv
Where to build the binaries: D:/Program Files/opencv/build(自己新建此目录)
2.2 点击configure按钮,选择相应的编译器为visual studio 9 2008,点击finish,出现红色标记的参数。
2.3 再点configur按钮 参数消除了红色。
2.4 点击generator按钮,生成工程文件。
3. 用vc2008进行编译
3.1 用vc2008打开产生的工程文件OpenCV.sln,打开batch build菜单,全选中,然后Build
3.2 出现两个错误:
Error 195 error PRJ0019: A tool returned an error code from "Performing Post-Build Event..." RUN_TESTS
解决方法:将RUN_TESTS项目从solution中删除(有朋友知道好的解决方法请告知一声)。
4.编译完成后
将build/bin/Debug 和Release目录下的dll文件拷入opencv/bin目录,将build/lib/Debug 和Release目录下的lib文件拷入opencv/lib目录。将opencv/bin目录写入环境变量的path。将相应目录写入vc2008的 tools/options的Projects and Solutions的VC++ directories相应选项中。
* 3.2错误的一个解决方法:
选中RUN_TESTS项目,打开菜单Project->Properties,在弹出的对话框选择Build Event->Post-Build Event,将右边栏中的Command Line里的"D:/Program Files/CMake 2.6/bin/ctest.exe" --force-new-ctest-process -C $(OutDir)删除掉。
这样可以编译成功。实际上这样做应该是使其build完后不再进一步执行ctest来进行测试吧。
* 用VC2003好像无法编译最新SVN版本的OpenCV源码