error LNK1112: 模块计算机类型“x64”与目标计算机类型“X86”冲突 (OpenCV配置环境)

第一次写博客,记录一下我在配置OpenCV的过程中踩过的坑以及解决方法和自己的一些理解

  • 电脑系统:Windows 10 专业版
  •  OpenCV版本:3.1.0
  • Visual Studio版本:2013

问题描述:

在vs中配置完opencv后编译一个示例程序时报错:error LNK1112: 模块计算机类型“x64”与目标计算机类型“X86”冲突    


原因分析:

OpenCV库与vs中编译器不匹配,32位的库(x86)要用32位的编译器编译,与之对应,64位的库要用64位的编译器编译(x64)


解决方案:

具体的配置方法参考OpenCV3.1.0的下载、安装和配置_opencv3.1.0下载-CSDN博客

如果环境变量和库目录均选择32位相应路径则正常,但opencv3.1.0与之前的版本不同,它只有64位目录而没有32位目录,如下图

故配置时只能选择64位路径,并且在VS中需改为用64位编译器。

在参考配置方法博客中,如若进行到上图这一步没有出现Debug x64文件夹,就像这样:

则点击Debug下拉框的额配置管理器

新建一个64位解决方案平台并选中,点击确定:

这时就有64位了,接下来按步骤双击或右键打开打开Debug|x64文件夹下的Microsoft.Cpp.x64.userDrections的属性界面按照步骤配置

完成之后一定要选择右侧属性栏中的64位编译器!!!(不然还是会报错):

PS:如果没有右侧属性栏,在视图里面找找,很多窗口没有也都在那。

然后编译运行就可以了


个人总结时间:

刚开始我是照着参考资料里的那本书的步骤来的,但是我下载的opencv版本是3.1.0,没有x86文件夹,于是只能用x64代替书中的步骤,到第三步工程包含(include)目录的配置时,书中的配置都是在Win32|Debug文件夹下配置(因为前面的都是选的32位的环境变量路径及库),于是乎我也在此文件夹下配置,完了之后一运行,哦豁!报错了,error LNK1112: 模块计算机类型“x64”与目标计算机类型“X86”冲突,然后我只能去搜索解决方法,看有些教程是:

(1)右键项目名,点击属性,弹出项目属性页,找到链接器----高级,修改右侧的目标计算机,选择有X64的那个选项。

(2)右键项目名,选择清理解决方案,清理完之后选择X64平台编译器,然后重新生成解决方案,便可以调试成功。

就像这样:

但是如果配置管理器里面的活动解决方案平台还是选择的Win32的话(也就是用的32位编译器),这里右键项目名弹出的属性页也是32位编译器的,目标计算机改为64位反而也会报错,因为32位编译器和x86对应,64位编译器和x64对应,对不上就会报错模块计算机类型与目标计算机类型冲突。

总而言之,编译器要和opencv配置时选的x64还是x86对应

最后的最后,可能写的过程中某些方面有错误,毕竟不太了解程序运行和编译器之类的关系,还望批评指正。


参考资料:

  1. OpenCV3.1.0的下载、安装和配置_opencv3.1.0下载-CSDN博客
  2. OpenCV3.1.0+VS2013配置+Win10(64位)_opencv vs2013 64-CSDN博客
  3. 坑爹的OpenCV配置笔记-CSDN博客
  4. 《OpenCV3 编程入门》毛星云,冷雪飞等编著
  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值