C-为什么需要在Windows上使用MSVC编译Python扩展模块



我已经看到它很多次都提到必须使用MSVC构建Windows上的Python扩展模块。这里也提到:

https://docs.python.org/3/extdending/windows.html

Windows Python是在Microsoft Visual C 中构建的;使用其他编译器可能会或可能不起作用(尽管Borland似乎是(。本节的其余部分是MSVC 特定的。

我正在寻求对为什么有必要的技术理解。使用MingW-W64时,哪些特定的事情可能会出现问题?在什么情况下出现问题?该模块用C或C 编写是否重要?我正在寻找进一步研究的起点,高级概述或最佳的:参考。

请注意,我对Windows上的开发不是很熟悉。


我提出这个问题的动机是了解当事物出现工作时,通过使用mingw汇编的风险有多大。与MSVC一起编译可能特别麻烦,但很容易与MSYS/MINGW合作。

原因是,Microsoft Visual Studio的每个版本都带有其自己的运行时,MSVCRTXX.dll,没有像Linux中的系统范围的C库。由于较新的MSVCRT无法自由重新分布,因此Mingw无法使用。相反,mingw依赖于旧的msvcrt.dll,甚至不支持大多数C99功能。

一个人不能兼容链接代码与不同版本的MSVC (使用不同的运行时间(,因此不可避免的是,MingW生产的代码主要是MSVC6.0,无法与Python一起链接到与C/C/C 编译器一起链接vs 2015或2017。

更多信息。

最新更新