fatal error LNK1112: 模块计算机类型“X86”与目标计算机类型“x64”冲突——我的解决方案





原创 链接http://blog.csdn.net/tfy1028/article/details/8660823

2013年03月11日 20:44:46


  • opencv /
  • vs2010 /

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

    (曾参考http://blog.csdn.net/qtbmp/article/details/7273191?reload),仅供参考:

    1、原因:win7下的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的路径后,就不会再出以上的错误了。

    下面一条是我转载原博主后补充的内容

    一定要仔细检查配置的lib,dll路径,我按照文章做的都对了,但是仍然出现模板计算机与目标计算机不匹配,改了之后。只是X86和X64换了一个位置。最后发现是自己包含库路径那里lib是导入的X64,而我当前采用的是Debug win32平台。所以出现的这个问题,换成X86就好了。不同平台导入文件时一定要对应。。。。

    你可能感兴趣的:(软件安装问题)