vs2010+opencv2.4.4的配置在基于win8的64位系统上(自己结合网上不同的教程自己亲自实验)

  (注:参考:http://www.cnblogs.com/freedomshe/archive/2012/04/25/2470540.html,还有一个找不到链接了,是opencv china里的,找不到了,标题叫在vc2008 express下安装opencv2.3.1),参考这两个,结合自己的实际情况,亲自实验成功。

环境 win8(或者win7或者xp都行)+opencv +vs2010

步骤一:下载opencv,下载之后将opencv解压到某个地方,我的是解压倒d盘的(D:Program FilesOpenCV2.3.1opencv,),下载vs2010,并安装(微软的东西到:msdn我告诉你,这里去下就ok了,都是官方原版东西)。

步骤二:配置环境变量

win8下就是 windows键+i 点电脑信息--〉高级系统设置--〉高级--〉环境变量,在  系统变量  里与上边的   用户变量   里分别填上

  Path:

      32位系统 & VC2010添加的环境变量为:D:Program FilesOpenCV2.3.1opencvuildx86vc10in(这里如果你的opencv解压到其他盘,只把根目录换一下就行,如果解压到f盘里,根目录为F:opencv,则环境变量为:F:opencvuildx86vc10in,以下的相应修改即可)。

      64位系统 & VC2010添加的环境变量为:D:Program FilesOpenCV2.3.1opencvuildx64vc10in

(这里我看有些人添加的是比较复杂,如果path里只添加上边那一个不行的话,那就多添加几个(就是在path环境变量里将TBB的环境变量,还有跟路径加上了),中间用 英语的分号“;”隔开,

      32位系统 & VC2010添加的环境变量为:D:Program FilesOpenCV2.3.1opencvuildx86vc10in;D:Program FilesOpenCV2.3.1opencvuildcommon bbia32vc10;D:Program FilesOpenCV2.3.1opencv

      64位系统 & VC2010添加的环境变量为:D:Program FilesOpenCV2.3.1opencvuildx64vc10in;D:Program FilesOpenCV2.3.1opencvuildcommon bbintel64vc10;D:Program FilesOpenCV2.3.1opencv

  TBB:

      32位系统 & VC2010:D:Program FilesOpenCV2.3.1opencvuildcommon bbia32vc10

        64位系统 & VC2010:D:Program FilesOpenCV2.3.1opencvuildcommon bbintel64vc10

步骤三:打开vs2010,建立工程测试()

1)、文件->新建->项目->Visual C++->Win32 控制台应用程序(输入名称test)

2)、确定->下一步->附加选项选“空项目”->完成

3)、解决方案资源管理器->源文件(右键)->添加->新建项

4)、Visual C++->C++文件:输入名称test点添加

5)、粘贴下面的代码,保存

1 #include <opencv2opencv.hpp>
 2 #include <iostream>
 3 #include <string>
 4 using namespace cv;
 5 using namespace std;
 6 int main()
 7 {
 8     Mat img = imread("opencv.jpg");
 9     if(img.empty())
10     {
11         cout<<"error";
12         return -1;
13     }
14     imshow("xx的图片",img);
15     waitKey();
16 
17     return 0;
18 }

  

6)、把自己想要显示的图片改名为opencv.jpg,然后放到工程项目的test文件夹里面(是里面那个test文件夹)

第四步:配置工程的opencv依赖,(项目(菜单项)->…属性->VC++目录:需要配置“包含目录”和“库目录”两项。)

1.配置   包含目录

也即告诉VC去什么地方寻找OpenCV的头文件,打开VC,选择菜单工具”->“选项”->“项目和解决方案”->“VC++目录”->“包含文件,包含 D:Program FilesOpenCV2.3.1opencvuildinclude;D:Program FilesOpenCV2.3.1opencvuildincludeopencv;D:Program FilesOpenCV2.3.1opencvuildincludeopencv2 

2.配置  库目录

也即告诉VC去什么地方寻找OpenCV的库文件。

    32位系统 & VC2010,库目录为:D:Program FilesOpenCV2.3.1opencvuildx86vc10lib

    

    64位系统 & VC2010,库目录为:D:Program FilesOpenCV2.3.1opencvuildx64vc10lib

3.配置连接器:项目(菜单项)->…属性->连接器->输入->附加依赖项

 

在[链接器 LINKER]的[输入INPUT]中,为项目的Debug配置增加 [附加依赖项 Additional Dependencies]:

opencv_calib3d231d.lib

opencv_contrib231d.lib

opencv_core231d.lib

opencv_features2d231d.lib

opencv_flann231d.lib

opencv_gpu231d.lib

opencv_highgui231d.lib

opencv_imgproc231d.lib

opencv_legacy231d.lib

opencv_ml231d.lib

opencv_objdetect231d.lib

opencv_ts231d.lib

opencv_video231d.lib

(可根据实际需要删减)注意,请打开了新编辑窗口(即点击了“...”按钮)“附加依赖项”,并一条一条分别加入,一条一行(一个回车),(注意行末不要加";")否则会出现类似以下错误:1>LINK : fatal error LNK1104: 无法打开文件“…….lib”

(如果下载的OpenCV不是2.3.1版本,请将"XXX231d.lib"中的"231"更改为对应的版本号,例如:下载OpenCV 2.4.0,则统一改为"XXX240d.lib",否则会出现类似以下错误:1>LINK : fatal error LNK1104: 无法打开文件“XXX.lib”)

 

 

为项目的Release配置增加[附加依赖项 Additional Dependencies]:

opencv_calib3d231.lib

opencv_contrib231.lib

opencv_core231.lib

opencv_features2d231.lib

opencv_flann231.lib

opencv_gpu231.lib

opencv_highgui231.lib

opencv_imgproc231.lib

opencv_legacy231.lib

opencv_ml231.lib

opencv_objdetect231.lib

opencv_ts231.lib

opencv_video231.lib

(可根据实际需要删减)*

到这里,执行。测试看看能执行出来吗

32位的机器应该没什么问题了,但是对于64位机器这时候执行的时候,会报错

fatal error LNK1112: 模块计算机类型“X86”与目标计算机类型“x64”冲突

对于这个问题,(下边内容只64位看就可以了,32位的可以忽略了。)

 win8 下,安装的VS2010,然后搭配opencv2.4.4运行,报错为:fatal error LNK1112: 模块计算机类型“X86”与目标计算机类型“x64”冲突 。通过网上查询,给错的答案大同小异,但是依然有很多朋友按照网上的答案无法解决这个问题,以下是我的解决方案

 

1、原因:win8下的64位系统,在运行程序的时候,需要的DLL必须是64位系统编译的,VS2008也必须在安装的时候,选择了64位编译的支持。如果安装的时候,已经选择了,那么出现该问题的解决办法,安装网上常规的思路即可。既:

       (1)右键项目名,点击属性,弹出项目属性页,找到链接器----高级,修改右侧的目标计算机,选择有X64的那个选项。
        (2)右键项目名,选择清理解决方案,清理完之后选择X64平台编译器,然后重新生成解决方案,便可以调试成功。

注:按照网上搜到的方法执行完以上步骤后,我的程序仍然报错,只是X86和X64的位置换了一下。。汗死。。于是折腾出一下步骤:

2、如果此时问题依然没有解决,则可能是系统包含的DLL文件是win32下编译的,则,需要把DLL换成64位系统编译的。比如opencv2.3.1,之前编译的就是win32下编译的,则需要重新编译,具体步骤如下:

      (1)、右键 解决方案->属性,将平台选为X64,若无此选项,则点击配置管理器,选择X64平台,若无则新建一个X64平台并选中。

 

 

 

       (2)、接着,打开OpenCV.sln,右键清理,重新生成,注意配置管理器里面选择x64平台,不然编译出来的还是不能使用。   

 

 

         (3)、编译完成之后,配置DLL和Lib的路径后,就不会再出以上的错误了。

ok了。。。

原文地址:https://www.cnblogs.com/zhulintingfeng/p/opencv.html