擅长:python、mysql、java
<p>您确定使用MinGW-w64可以吗?在<a href="https://github.com/cython/cython/wiki/CythonExtensionsOnWindows" rel="nofollow noreferrer">Cython Wiki</a>中,他们说不建议:</p>
<p>**请勿使用MinGW-w64。正如您将注意到的,用于Python的MinGW导入库(例如libpython27.a)在AMD64版本的Python中被省略了。这是故意的。不要试图使用dlltool制作。目前还没有正式的MinGW-w64版本,它仍然处于“测试版”中,被认为是不稳定的,尽管您可以从TDM-GCC获得64位版本。mingw运行时也存在与MSVC运行时冲突的问题;这可能发生在您不期望的地方,例如g++或gfortran的运行库内部。为了安全起见,暂时避免使用MinGW-w64。</p>
<> **有经验的Linux或苹果MaCOSX可能选择GCC(MINW)作为他们在Windows上选择的C/C++编译器。注意,GCC不是Windows上的platform C编译器。要与Windows上的大多数库和应用程序保持二进制兼容,请使用Microsoft的编译器。这与在Linux上选择GCC作为编译器没有区别。微软的Windows平台C/C++编译器是免费的。</p>
对于C++,观察GCC(MIWW)和MSVC使用不同的C++运行时。如果在扩展中使用C++,C++运行时还必须与Python的C运行时兼容。为此,总是使用微软的C++编译器,甚至在32位x86上。在Windows这样的平台上,这是非常重要的,其中C++是普遍存在的(参见COM和ActiveX)。如果使用GCC作为C++编译器,则扩展不会与其他C++库或COM二进制兼容,不兼容Python的C运行时,而GCC和MSVC之间异常处理的差异会使应用程序崩溃。</p>