麻烦构建旧版本的 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:必须定义入口点