【发布时间】:2015-04-07 02:24:04
【问题描述】:
首先,我确实已经检查并发现了这个与我的问题类似的问题:
fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'X86'
虽然 VS2013 不再具有 VC++ 目录设置,但该解决方案无法使用。现在看起来这些是通过环境变量配置的,但我不确定如何在不破坏 32 位构建的情况下解决这个问题。
======================================
我正在将一个项目从 32 位代码移植到 64 位代码,因此我在我的 Visual Studio 项目中创建了一个 x64 平台。调试版本工作正常,但发布版本给我这个错误:
1>MSVCRT.lib(ti_inst.obj):致命错误 LNK1112:模块机器类型“X86”与目标机器类型“x64”冲突
设置 VERBOSE:Lib 选项,它似乎试图在 x86 路径而不是 x64 中查找默认系统库。这个 pastebin 包括编译器和链接器命令行(是的,这是 MACHINE:X64)以及 VERBOSE:Lib 输出。
我想知道 a) 我该如何解决这个问题,以及 b) 为什么这只会影响发布版本?查看调试构建的库进度日志,我可以看到它正确地选择了 x64 路径和库。
【问题讨论】:
-
如果该错误告诉您它在抱怨哪个模块会很有用。
-
我的猜测是 C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86\ 不是 64 位代码。 VC++ 目录具有 x86 和 x64 设置。
标签: c++ windows visual-studio-2013