VS2012+CMake重编译和配置OpenCV
2016-01-22 01:01
411 查看
我的笔记本是Win7 64位的,已经装了VS2012,我要编译64位的OpenCV库。
1、下载CMake和OpenCV,网址打不开的话可以百度网盘下载
将CMake安装好,将OpenCV解压到 D:\Program Files (x86)\下
2、在D:\Program Files (x86)\下新建文件夹 OpenCVProject,用于存放编译的OpenCV工程。打开CMake,点“Browse Source…”,选择OpenCV的源码目录(D:/Program Files (x86)/opencv/sources);然后点“Browse Build…”,选择刚才新建的文件夹OpenCVProject。点击“Configure”按钮,在出现的对话框中选择Visual Studio 11 2012 Win64, 默认Use default native compilers, 点Finish。如图所示,说明有错误….
再次点击“Configure”按钮,就是下图的样子(如果还是有错误,继续点击Configure,直到没有红色标记)
此时已经没有错误,点“Generate”生成工程,退出CMake。
3、进入OpenCVProjiect(D:\Program Files (x86)\OpenCVProject),找到“OpenCV.sln”,双击打开。选择CMakeTargets下 INSTALL,右键选择“生成”,生成Debug版dll,lib。
然后切换编译模式为Release模式,依然在INSTALL右键选择“生成”,生成Release版dll,lib。
4、在VS2012中配置编译好的OpenCV库。首先配置环境变量。找到环境变量设置,在用户变量中找到PATH变量(没有则新建),在变量值那添加 D:\Program Files (x86)\OpenCVProject\install\x64\vc11\bin
打开VS2012,新建win32控制台程序Test,在 项目->属性->VC++目录->包含目录,添加 D:\Program Files (x86)\OpenCVProject\install\include, 在“库目录”中添加D:\Program Files (x86)\OpenCVProject\install\x64\vc11\lib
然后在 项目->属性->链接器->输入->附加依赖项,添加以下lib文件
opencv_calib3d2411d.lib
opencv_contrib2411d.lib
opencv_core2411d.lib
opencv_features2d2411d.lib
opencv_flann2411d.lib
opencv_gpu2411d.lib
opencv_highgui2411d.lib
opencv_imgproc2411d.lib
opencv_legacy2411d.lib
opencv_ml2411d.lib
opencv_nonfree2411d.lib
opencv_objdetect2411d.lib
opencv_photo2411d.lib
opencv_stitching2411d.lib
opencv_ts2411d.lib
opencv_video2411d.lib
opencv_videostab2411d.lib
然后将配置切换到Release
在“附加依赖项”添加以下lib文件
opencv_calib3d2411.lib
opencv_contrib2411.lib
opencv_core2411.lib
opencv_features2d2411.lib
opencv_flann2411.lib
opencv_gpu2411.lib
opencv_highgui2411.lib
opencv_imgproc2411.lib
opencv_legacy2411.lib
opencv_ml2411.lib
opencv_nonfree2411.lib
opencv_objdetect2411.lib
opencv_photo2411.lib
opencv_stitching2411.lib
opencv_ts2411.lib
opencv_video2411.lib
opencv_videostab2411.lib
注意,因为我用的OpenCV版本为2.4.11,所以lib的后缀都为2411.lib或2411d.lib(带d表示为Debug版本),若为其它版本,则需要依版本不同而改变lib的后缀。
5、运行测试代码
因为我们编译的是64位的库,但是建的win32的工程,所以直接运行会出错。如下图
解决方案为进入配置管理器,如图
在活动解决方案平台那点击选择“新建”如图
点“确定”,然后重新运行工程就可以了。
1、下载CMake和OpenCV,网址打不开的话可以百度网盘下载
将CMake安装好,将OpenCV解压到 D:\Program Files (x86)\下
2、在D:\Program Files (x86)\下新建文件夹 OpenCVProject,用于存放编译的OpenCV工程。打开CMake,点“Browse Source…”,选择OpenCV的源码目录(D:/Program Files (x86)/opencv/sources);然后点“Browse Build…”,选择刚才新建的文件夹OpenCVProject。点击“Configure”按钮,在出现的对话框中选择Visual Studio 11 2012 Win64, 默认Use default native compilers, 点Finish。如图所示,说明有错误….
再次点击“Configure”按钮,就是下图的样子(如果还是有错误,继续点击Configure,直到没有红色标记)
此时已经没有错误,点“Generate”生成工程,退出CMake。
3、进入OpenCVProjiect(D:\Program Files (x86)\OpenCVProject),找到“OpenCV.sln”,双击打开。选择CMakeTargets下 INSTALL,右键选择“生成”,生成Debug版dll,lib。
然后切换编译模式为Release模式,依然在INSTALL右键选择“生成”,生成Release版dll,lib。
4、在VS2012中配置编译好的OpenCV库。首先配置环境变量。找到环境变量设置,在用户变量中找到PATH变量(没有则新建),在变量值那添加 D:\Program Files (x86)\OpenCVProject\install\x64\vc11\bin
打开VS2012,新建win32控制台程序Test,在 项目->属性->VC++目录->包含目录,添加 D:\Program Files (x86)\OpenCVProject\install\include, 在“库目录”中添加D:\Program Files (x86)\OpenCVProject\install\x64\vc11\lib
然后在 项目->属性->链接器->输入->附加依赖项,添加以下lib文件
opencv_calib3d2411d.lib
opencv_contrib2411d.lib
opencv_core2411d.lib
opencv_features2d2411d.lib
opencv_flann2411d.lib
opencv_gpu2411d.lib
opencv_highgui2411d.lib
opencv_imgproc2411d.lib
opencv_legacy2411d.lib
opencv_ml2411d.lib
opencv_nonfree2411d.lib
opencv_objdetect2411d.lib
opencv_photo2411d.lib
opencv_stitching2411d.lib
opencv_ts2411d.lib
opencv_video2411d.lib
opencv_videostab2411d.lib
然后将配置切换到Release
在“附加依赖项”添加以下lib文件
opencv_calib3d2411.lib
opencv_contrib2411.lib
opencv_core2411.lib
opencv_features2d2411.lib
opencv_flann2411.lib
opencv_gpu2411.lib
opencv_highgui2411.lib
opencv_imgproc2411.lib
opencv_legacy2411.lib
opencv_ml2411.lib
opencv_nonfree2411.lib
opencv_objdetect2411.lib
opencv_photo2411.lib
opencv_stitching2411.lib
opencv_ts2411.lib
opencv_video2411.lib
opencv_videostab2411.lib
注意,因为我用的OpenCV版本为2.4.11,所以lib的后缀都为2411.lib或2411d.lib(带d表示为Debug版本),若为其它版本,则需要依版本不同而改变lib的后缀。
5、运行测试代码
#include "stdafx.h" #include <opencv2\opencv.hpp> using namespace cv; using namespace std; int main() { Mat img = imread("F:/PHOTOS/杂/dell.bmp"); if(img.empty()) { cout<<"error"; return -1; } imshow("dell",img); waitKey(); return 0; }
因为我们编译的是64位的库,但是建的win32的工程,所以直接运行会出错。如下图
解决方案为进入配置管理器,如图
在活动解决方案平台那点击选择“新建”如图
点“确定”,然后重新运行工程就可以了。
相关文章推荐
- VB的32位程序在64位系统中出现文件和注册表自动转向的解决方法
- 关于VS2012自带的 性能分析 工具使用实例(图文介绍)
- vs2012 error c4996: This function or variable may be unsafe
- C#中实现在32位、64位系统下自动切换不同的SQLite dll文件
- python中使用OpenCV进行人脸检测的例子
- opencv 做人脸识别 opencv 人脸匹配分析
- 使用opencv拉伸图像扩大分辨率示例
- wamp2.2e 64位 curl 开启不了的解决办法
- Shell脚本判断Linux系统是32位还是64位的几种方法分享
- 详解VS2012发布网站步骤
- 阿里云主机Windows 2008 32位 64位自助正版激活图文教程
- 解决VS2012 Express的There was a problem sending the command to the program问题
- windows 2008 R2 64位服务器中开启php curl扩展的方法
- 基于C++实现kinect+opencv 获取深度及彩色数据
- OpenCV 2.4.3 C++ 平滑处理分析
- Visual Studio中根据系统区分引用64位、32位DLL动态库文件的配置方法
- win7 64位系统 配置php最新版开发环境(php+Apache+mysql)
- vs2012创建的ado.net模型无法实例化的解决方案
- linux查看cpu是否支持64位的方法
- 利用Python和OpenCV库将URL转换为OpenCV格式的方法