麻烦构建旧版本的 SIP:致命错误 LNK1112:模块机器类型“x64”与目标机器类型“X86”冲突

Posted

技术标签:

【中文标题】麻烦构建旧版本的 SIP:致命错误 LNK1112:模块机器类型“x64”与目标机器类型“X86”冲突【英文标题】:Trouble Building old version of SIP: fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'X86' 【发布时间】:2017-08-31 03:38:14 【问题描述】:

我在构建旧版本的 SIP 时遇到了一些问题。我正在建设:

Windows 7
python2.7
SIP 4.19.3

我正在按照此处的说明进行操作: How to install SIP & PyQT on windows 7

所以我运行configure.py,这给了我makefile。我用 vcvarsall.bat 启动了环境,然后运行 ​​nmake。然后我得到链接器错误:

链接 /NOLOGO /DYNAMICBASE /NXCOMPAT /DLL /MANIFEST /MANIFESTFILE:sip.pyd.manifest /SUBSYSTEM:CONSOLE /INCREMENTAL:NO /OUT:sip.pyd @C:\Users\jspada\AppData\Local\Temp\nm5CC3.tmp python27.lib(python27.dll):致命错误 LNK1112:模块机器类型 'x64' 与目标机器类型 'X86' NMAKE 冲突:致命错误 U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64\link.EXE"' : 返回码 '0x458' 停止。NMAKE : 致命错误 U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64\nmake.exe"' : 返回码 '0x2' 停止。

我尝试使用两者来初始化环境 vcvarsall.bat x86 和 vcvarsall.bat x64 并构建,但无论如何都会得到相同的错误。

我不熟悉在 Windows 上构建,所以即使在浏览堆栈上的其他问题后我也有点卡住了。有什么想法吗?

谢谢!

【问题讨论】:

【参考方案1】:

我觉得自己很愚蠢!确保您安装了正确版本的 python。当您从站点安装时,它将获取 64 位版本而不是 32 位。安装了 64 位版本,虽然我有 64 位系统,但 sip 源是 32 位的。

卸载 python x64 并重新安装 python x32 解决了问题,并且能够进行 nmake + nmake 安装

【讨论】:

以上是关于麻烦构建旧版本的 SIP:致命错误 LNK1112:模块机器类型“x64”与目标机器类型“X86”冲突的主要内容,如果未能解决你的问题,请参考以下文章

致命错误 LNK1112:模块机器类型“x64”与通过 vcvarsall.bat x86 运行构建的目标机器类型“X86”冲突

致命错误 LNK1112:模块机器类型“X86”与 2010 的目标机器类型“x64”冲突

Qt 模块错误 - QtOpenGL 中的 LNK 1112

安装 Visual Studio 2013 后的第一个构建错误。致命错误 LNK1561:必须定义入口点

致命错误LNK1107:文件无效或损坏:无法读取0x21E00D

在 Windows (VC90) 中使用 C 绑定构建 Python 包导致 LNK1181 致命错误