Win64机器上VS报错“fatal error LNK1112: 模块计算机类型“x64”与目标计算机类型“X86”冲突”

在64位机器上编译VS工程出现这个问题,按如下步骤逐个排除:(这里以VS2008为例子)

排查步骤一:系统是否已经安装VS下X64编译能力

在控制面板中找到VS2008,选择卸载或更改,如下:
Win64机器上VS报错“fatal error LNK1112: 模块计算机类型“x64”与目标计算机类型“X86”冲突”_第1张图片

勾选X64编译器和工具,然后点击更新:
Win64机器上VS报错“fatal error LNK1112: 模块计算机类型“x64”与目标计算机类型“X86”冲突”_第2张图片

安装完后进入下面的步骤。

排查步骤二:VS本身的包含路径是否正确设置为64位

依次进入“工具”->“选项”->“项目和解决方案”->“VC++目录”,在平台这里选择X64,然后更改依赖的头文件,库文件和可执行文件目录:
Win64机器上VS报错“fatal error LNK1112: 模块计算机类型“x64”与目标计算机类型“X86”冲突”_第3张图片

注意不要混淆win32和x64的设置,比如下面的路径是X64的:
Win64机器上VS报错“fatal error LNK1112: 模块计算机类型“x64”与目标计算机类型“X86”冲突”_第4张图片

排查步骤三:VS工程的配置是否正确
在工程上右键选择属性,进入这里:
Win64机器上VS报错“fatal error LNK1112: 模块计算机类型“x64”与目标计算机类型“X86”冲突”_第5张图片

如果平台不是X64,则在配置管理器中新建一个,如下:
Win64机器上VS报错“fatal error LNK1112: 模块计算机类型“x64”与目标计算机类型“X86”冲突”_第6张图片
Win64机器上VS报错“fatal error LNK1112: 模块计算机类型“x64”与目标计算机类型“X86”冲突”_第7张图片

上述步骤OK后回到属性页,选择“链接器”->“高级”,将目标计算机设置为MachineX64:
Win64机器上VS报错“fatal error LNK1112: 模块计算机类型“x64”与目标计算机类型“X86”冲突”_第8张图片
排查完所有三个步骤后,重新生成VS工程,就可以正常编译了。

你可能感兴趣的:(编程工具)