0

此页面记录了每个 Python 版本所需的不同版本的 Microsoft Visual C++ 编译器:https ://wiki.python.org/moin/WindowsCompilers

我想使用 MinGW 而不是 Microsoft 为 64 位 Windows 8.1 编译 C 库,但我读过 MinGW-w64/mingwpy 不支持 Python 3.5: Make cffi use MinGW under Python 3.5 on Windows

我还看到http://mxe.cc/用于交叉编译到 Windows,但它也使用 MinGW-w64 工具链。

如果我对 Python 接口使用 CFFI 的 ABI 内联模式,我可以为 C 库编译一次 DLL(与 Microsoft Visual C++ 10.0 兼容)并将其与 Python 3.4 和 3.5 一起使用吗?如果是这样,是否因为静态链接到 DLL 而实现了与 Python 3.5 的兼容性?我不明白动态与静态链接的微妙之处。

4

1 回答 1

0

如果你使用 CFFI 的 ABI in-line 模式,你不需要编译任何东西。您只需要安装为 Windows 预编译的 CFFI。

如果你使用推荐的 CFFI 的 API 模式,你需要一个编译器。Windows 上的完整要求对我来说太复杂了,无法理解,但请注意,CFFI 生成的扩展模块应该在 CPython 所谓的“稳定 ABI”模式下编译。也就是说,.pyd对于所有版本的 CPython 3.x,一次编译就足够了。我猜你可以选择你有合适的编译器工具链的任何版本的 CPython,并用它来编译.pyd.

于 2016-11-22T11:10:33.397 回答