致命错误 LNK1112:模块机器类型“X86”与 2010 的目标机器类型“x64”冲突
Posted
技术标签:
【中文标题】致命错误 LNK1112:模块机器类型“X86”与 2010 的目标机器类型“x64”冲突【英文标题】:fatal error LNK1112: module machine type 'X86' conflicts with target machine type 'x64' for 2010 【发布时间】:2013-01-20 04:57:07 【问题描述】:我正在尝试运行一个示例应用程序。此应用程序适用于 32 位机器。但我想在 64 位机器上运行它,但出现以下错误:
AFE\AnyFirewallEngine\Unicode Debug\AfBenchmark.obj:致命错误 LNK1112:模块机器类型“X86”与目标机器类型“x64”冲突
我在这里使用了两个第三方库 1. 打开ssl-0.9.8e 2. 提升
已经为 64 位构建。
我的编译器是visual studio 2010
请帮帮我........
【问题讨论】:
试试这个:***.com/a/4364020/1064610 你能澄清一下“想要”的说法吗?您想在 64 位操作系统上运行 32 位应用程序(这意味着什么都不做,顺便说一句),还是想编译您之前构建的 32 位应用程序源代码到 64 位 target 并在 64 位操作系统上运行? 您是否正在尝试构建一个将在 64 位机器上运行的 32 位应用程序?或者您正在尝试构建一个 64 位应用程序?您不能将 32 位可执行文件、库或 DLL 与 64 位可执行文件、库或 DLL 链接。 我想在 64 位操作系统上构建 32 位应用程序 那么你需要使用 32 位构建的库,而不是 64 位构建。 【参考方案1】:在我的情况下,openssl 1.0.2d
遇到了同样的问题:
fatal error LNK1112: module machine type 'X86' conflicts with target machine type 'x64'
当我运行vcvars64.bat
insted of vcvars32.bat
时问题解决了。
在 VS15 中它位于:
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64\vcvars64.bat
然后我可以毫无问题地运行 ms\do_win64a
和 nmake -f ms\nt.mak
【讨论】:
【参考方案2】:您显然至少使用了one other third party library,并且您尝试链接的二进制文件是为 x86 构建的。您必须找到或生成 AFE 的 x64 二进制文件。
【讨论】:
以上是关于致命错误 LNK1112:模块机器类型“X86”与 2010 的目标机器类型“x64”冲突的主要内容,如果未能解决你的问题,请参考以下文章
致命错误 LNK1112:模块机器类型“x64”与通过 vcvarsall.bat x86 运行构建的目标机器类型“X86”冲突
麻烦构建旧版本的 SIP:致命错误 LNK1112:模块机器类型“x64”与目标机器类型“X86”冲突
LNK1112:模块机器类型“x64”与目标机器类型“x86”冲突-opencv 构建
尝试在 64 位机器上将 Detours.lib 编译为 32 位:LNK1112:模块机器类型“x86”与目标机器类型“x64”冲突
QtCreator上写的HelloWorld报错:LNK1112: 模块计算机类型“X86”与目标计算机类型“x64”冲突