What version of Visual Studio and/or MinGW do I ne

2019-01-17 18:29发布

问题:

To put this question a different way, what version of Visual C++ was each official build of Python from python.org of Python built with, and what versions of MinGW are compatible with those versions of Visual C++?

Is this information readily available on some web site?

回答1:

Python 2.6, 2.7, 3.1, and 3.2 were all compiled with VS 2008. Python 3.3 and 3.4 are compiled with VS 2010.

I'm not sure about MinGW compatibility.

If you are looking for command line compilers, Microsoft has released two different SDKs for Windows 7 that include the command line compilers. The first SDK (for .NET 3.5) includes the VS 2008 compilers. The second SDK (for .NET 4.0) includes the VS 2010 compilers.

Update: The file PCbuild\readme.txt in the source distribution of each version of Python includes the version of Visual Studio used to make the binaries.



回答2:

Presumably, you're talking about a requirement that Python extensions be built to link dynamically with the same C runtime library that the Python instance does. It should first be noted that this depends on how the instance was built, i.e., if you build Python yourself from the source code it is the compiler version you use for the build, not the version of Python, that determines the runtime library being used.

If you want to know the runtime library versions for the official binary releases, you can work this out yourself using your favorite DLL dependency tool, e.g., Dependency Walker, or by looking to see which runtime library redistributable is contained in the installer.

Based on my very brief research, I believe you can use the latest version of MinGW with any of these runtime libraries. By default it uses msvcrt.dll, the C runtime built into Windows, but it appears to support using VC++ runtimes instead.