LNK4001 在构建 Python 扩展时仍然提供 obj 文件?

Posted

技术标签:

【中文标题】LNK4001 在构建 Python 扩展时仍然提供 obj 文件?【英文标题】:LNK4001 while still supplying obj files when building Python extension? 【发布时间】:2014-10-02 21:42:29 【问题描述】:

我正在将我的 C Python 扩展移植到 Python 3(.4.1) 和 Windows 7。我安装了 Windows 7.1 SDK(包括 VS 2010 工具链),并且出现了似乎不正确的链接器错误。我已将整个构建过程包含在随附的屏幕截图中。

LNK4001 警告在没有指定 .obj 文件时出现,但它们在命令行中清晰可见。 LNK1159 在未提供输出文件时发生,但 /OUT:... 在命令行中清晰可见。

谢谢!

【问题讨论】:

尝试从路径中删除最后的 '\',即代替 "c:\python34\lib\",尝试 "c:\pythone34\lib"。 这些路径是由 python 自动添加的,但强制删除它们似乎没有帮助。 更正,删除这些路径确实有帮助。我将在此处发布官方答案以供将来参考。谢谢! 【参考方案1】:

按照 Houssam 的建议,从 Windows SDK 路径中删除尾随“\”修复了它。

【讨论】:

以上是关于LNK4001 在构建 Python 扩展时仍然提供 obj 文件?的主要内容,如果未能解决你的问题,请参考以下文章

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

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

使用 Qt 和 Cuda for Python 构建 OpenCV,在 build_all cmake 目标上运行到 LNK2019

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

LNK1181:无法打开输入文件“m.lib”

LNK1112:模块机器类型“x64”与目标机器类型“x86”冲突-opencv 构建