模块计算机类型“X64”与目标计算机类型“X86”冲突问题的几点补充

小弟近来实验室项目需要在调用OpenCV的函数,编译出现了如下问题:模块计算机类型“X64”与目标计算机类型“X86”冲突。

模块计算机类型“X64”与目标计算机类型“X86”冲突问题的几点补充_第1张图片
上网查找了许多博客网站,多数转载以下这篇博客和百度经验。
http://jingyan.baidu.com/article/3aed632e090ef87010809138.html
http://blog.csdn.net/qtbmp/article/details/7273191?reload
以上链接给出了解决方案,但小弟实在困惑,因为先前在其他笔记本电脑也如法配置过OpenCV,不应该出现这样的问题,因此自己捣鼓了一下,针对此问题补充以下几点说明:( 主要是自己的理解,可能不对也请网友们批评指正
1.模块计算机类型,指VS中附加的链接库函数类型,即lib或dll分为64位和32位之分,目标计算机类型,此处指的是编译的平台,即X64或者Win32编译平台。
模块计算机类型“X64”与目标计算机类型“X86”冲突问题的几点补充_第2张图片


2. 当在Win32平台编译时,不管操作系统和VS编译环境是32或64位时,库目录均应是D:\opencv2410\build\x86\vc10\lib,否则会报错。小弟因为先前贪图省事,在库目录将X86和X64的都包含,如下图所示,由于X64在上面,编译时率先被包含,就会报错。
模块计算机类型“X64”与目标计算机类型“X86”冲突问题的几点补充_第3张图片
模块计算机类型“X64”与目标计算机类型“X86”冲突问题的几点补充_第4张图片



因此必须将X64那个lib路径下移,最好还是将X64的lib路径删除为好,如下图:
模块计算机类型“X64”与目标计算机类型“X86”冲突问题的几点补充_第5张图片
模块计算机类型“X64”与目标计算机类型“X86”冲突问题的几点补充_第6张图片




这样编译就没有问题。同理 当在X64平台编译时,不管操作系统和VS编译环境是32或64位时,库目录均应是D:\opencv2410\build\x64\vc10\lib。
3.本问题虽然是配置OpenCV时遇到的,但是同理只要有VS有其他附加库的时候都应该注意此问题。

你可能感兴趣的:(OpenCV,OpenCv)