CFFI可以在Python 3.4和3.5中使用相同的DLL吗?

时间:2016-11-21 21:51:57

标签: python windows dll python-cffi

此页面记录了每个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工具链。

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

1 个答案:

答案 0 :(得分:0)

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

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