设为首页 收藏本站
查看: 1851|回复: 0

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

[复制链接]

尚未签到

发表于 2015-5-21 10:42:28 | 显示全部楼层 |阅读模式
  (注:参考:http://www.iyunv.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 Files\OpenCV2.3.1\opencv,),下载vs2010,并安装(微软的东西到:msdn我告诉你,这里去下就ok了,都是官方原版东西)。
  步骤二:配置环境变量
  win8下就是 windows键+i 点电脑信息--〉高级系统设置--〉高级--〉环境变量,在  系统变量  里与上边的   用户变量   里分别填上
  Path:
  32位系统 & VC2010添加的环境变量为:D:\Program Files\OpenCV2.3.1\opencv\build\x86\vc10\bin(这里如果你的opencv解压到其他盘,只把根目录换一下就行,如果解压到f盘里,根目录为F:\opencv,则环境变量为:F:\opencv\build\x86\vc10\bin,以下的相应修改即可)。
  64位系统 & VC2010添加的环境变量为:D:\Program Files\OpenCV2.3.1\opencv\build\x64\vc10\bin
  (这里我看有些人添加的是比较复杂,如果path里只添加上边那一个不行的话,那就多添加几个(就是在path环境变量里将TBB的环境变量,还有跟路径加上了),中间用 英语的分号“;”隔开,
  32位系统 & VC2010添加的环境变量为:D:\Program Files\OpenCV2.3.1\opencv\build\x86\vc10\bin;D:\Program Files\OpenCV2.3.1\opencv\build\common\tbb\ia32\vc10;D:\Program Files\OpenCV2.3.1\opencv
  64位系统 & VC2010添加的环境变量为:D:\Program Files\OpenCV2.3.1\opencv\build\x64\vc10\bin;D:\Program Files\OpenCV2.3.1\opencv\build\common\tbb\intel64\vc10;D:\Program Files\OpenCV2.3.1\opencv
  
  )
  TBB:
  32位系统 & VC2010:D:\Program Files\OpenCV2.3.1\opencv\build\common\tbb\ia32\vc10
  64位系统 & VC2010:D:\Program Files\OpenCV2.3.1\opencv\build\common\tbb\intel64\vc10
  
  步骤三:打开vs2010,建立工程测试()
  1)、文件->新建->项目->Visual C++->Win32 控制台应用程序(输入名称test)
DSC0000.jpg
  
  2)、确定->下一步->附加选项选“空项目”->完成
DSC0001.png
  3)、解决方案资源管理器->源文件(右键)->添加->新建项
DSC0002.png
  4)、Visual C++->C++文件:输入名称test点添加
DSC0003.png
  
  5)、粘贴下面的代码,保存
  



1 #include
2 #include
3 #include
4 using namespace cv;
5 using namespace std;
6 int main()
7 {
8     Mat img = imread("opencv.jpg");
9     if(img.empty())
10     {
11         coutVC++目录:需要配置“包含目录”和“库目录”两项。)
  1.配置   包含目录
  也即告诉VC去什么地方寻找OpenCV的头文件,打开VC,选择菜单“工具”->“选项”->“项目和解决方案”->“VC++目录”->“包含文件”,包含 D:\Program Files\OpenCV2.3.1\opencv\build\include;D:\Program Files\OpenCV2.3.1\opencv\build\include\opencv;D:\Program Files\OpenCV2.3.1\opencv\build\include\opencv2

  
  2.配置  库目录
  也即告诉VC去什么地方寻找OpenCV的库文件。
  
  32位系统 & VC2010,库目录为:D:\Program Files\OpenCV2.3.1\opencv\build\x86\vc10\lib
  
  64位系统 & VC2010,库目录为:D:\Program Files\OpenCV2.3.1\opencv\build\x64\vc10\lib
  
  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平台并选中。

DSC0004.jpg DSC0005.jpg



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



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

DSC0006.jpg

ok了。。。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-69128-1-1.html 上篇帖子: Win8系统本地连接显示为网络2 下篇帖子: win8 app GridView控件的使用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表