gccwinbinaries, 用于 python 开发人员的Windows GCC ( MINGW ) 二进制文件

分享于 

9分钟阅读

GitHub

  繁體 雙語
Windows GCC (MinGW) binaries for Python developers
  • 源代码名称:gccwinbinaries
  • 源代码网址:http://www.github.com/develersrl/gccwinbinaries
  • gccwinbinaries源代码文档
  • gccwinbinaries源代码下载
  • Git URL:
    git://www.github.com/develersrl/gccwinbinaries.git
    Git Clone代码到本地:
    git clone http://www.github.com/develersrl/gccwinbinaries
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/develersrl/gccwinbinaries
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    用于 python 开发人员的Windows GCC ( MINGW ) 二进制文件

    更新 2009/10/09: 更新到 GCC 4.3.3

    这个包containes是 gcc/MINGW ( 这种神奇的非官方构建叫做'tdm')的安装程序,它完全集成在你的官方 python 安装中,允许编译扩展。

    如果你知道我说什么,它尝试用 GCC ( 好老'MSVCR71.DLL 问题编译 python distutils扩展中的所有问题。 查看下面的细节,但它实际上应该是 Works(TM)。 使用 GCC,可以产生与正式的python.org 分发( 所以它们可以混合在一起'( .pyd )'与用 Visual Studio 编译的扩展名匹配) 完全兼容的扩展。

    下载

    下载这里软件包:

    它是GPL许可( 我真的需要这么说)?

    它包含:

    上面的所有软件包的源代码可以在很多镜像中找到,包括 MINGW 官方下载页面。 或者你可以直接向我询问,我会给你一个下载链接,这个网站( 要完全遵守GPL规范,请保存我的剩余带宽)。

    安装程序的源代码可以在文件 mingw.iss 找到。

    安装程序执行什么操作?

    • 复制二进制文件以运行 GCC。
    • 安装 gccmrt 脚本( 请参见下面)。
    • 可以选择修改环境 PATH
    • 可以选择配置现有的python 安装来使用GCC作为 distutils。

    为 python 开发安装GCC的快速指南

    • 运行安装程序并按照指示操作。
    • 如果可能,请不要选择带有空白的安装路径。 目前没有关于这个的优秀 Bug,但不要滥用你的运气。
    • 确保盒子 Add GCC to your system PATH 已经检查。
    • 确保盒子 Bind to Python installations 已经检查。
    • 确保盒子 Set the default runtime library 选中,然后选择所需的库:
    • 对于 python 2.6,2.7,3. x, 你需要 MSVCR90.DLL
    • 对于 python 2.4或者 2.5,你需要 MSVCR71.DLL
    • 对于 python 2.3或者更低版本,你需要 MSVCRT.DLL
    • 标记哪些 python 安装将在默认情况下使用 GCC。 这完全取决于你:

    如果在多个 python 版本上工作,则需要在安装后对运行库进行 switch 编译。 你可以在任何时候使用 gccmrt 脚本( 请参见下面)。

    常见问题解答

    表示: error: command 'gcc' failed: No such file or directory
    这是因为:

    • 你没有让安装程序修改你的系统路径。 立即手动进行,然后重试。
    • 安装后未关闭命令提示。 你需要关闭并重新打开命令提示以实际使用新路径。

    我可以使用多个版本和不同的运行时库进行工作?
    当然可以,你只需要在每次使用版本时调用 gccmrt,这样distutils就会根据正确的运行库库链接到它。

    我害怕这个安装程序会搞乱 python 安装。 如何回滚,以防某些情况无法正常工作? 。
    只需运行卸载程序卸载程序将绝对恢复安装程序所做的任何更改,包括 python 安装绑定( distutils配置)。 你应该放松点: 所有安装程序都是在 PYTHONLibdistutils 中添加/修改 distutils.cfg。 这是一个文本文件,你可以看一下,看手册,ecc。

    这个GCC可以用来从源代码编译自己的?
    没有线索,试试吧,然后用谷歌。 我的理解是,你仍然需要以某种方式修补 python 源代码。

    如果我拥有. NET 2003,或者我使用免费的Visual Studio 工具包,为什么要使用这个? 。
    因为 GCC 4.x 生成比 Visual Studio. NET 2003更好的代码,而且有更高级的功能,比如自动矢量化。 这里没有任何意外,因为 GCC 4.x 已经更新了很多年了。 你可以自己比较生成的代码,但是我的证据显示( 非常清楚)。

    python 支持( 编译distutils扩展)

    这里安装程序提供了与 python 集成的完整支持。 这基本上意味着 3个东西:

    • 将GCC二进制目录添加到路径
      python distutils只是尝试运行 gcc 并期望自动找到它。 你不想知道有多少人忘记设置路径和浪费时间,想知道为什么is没有选择他们的GCC ( 更糟糕的是,它在其他地方挑选了一个旧的GCC,也许在cygwin中。)。

    • 在全局中将GCC设置为缺省编译器。
      平台宽 distutils.cfg ( 位于 PYTHONLibdistutils 中) 允许配置默认编译器用于扩展编译。 安装程序将显示系统( 通过注册表发现) 中的所有现有 python 安装,并允许用户在编译扩展时选择要配置的。

    • 将运行时库配置为使用( MSVCRT.DLL 或者 MSVCR71.DLL )
      你可能已经知道,python 2.3 ( 旧的) 是用 Visual Studio 98编译的,并与 MSVCRT.DLL 链接。 相反,python 2.4和 2.5是用 Visual Studio. NET 2003编译的,并且链接到 MSVCR71.DLL。 关于如何正确配置GCC来处理这个问题,有一些广泛的。 安装程序将让用户决定要使用哪个运行时库进行编译。 此外,可以使用 gccmrt 脚本( 请参见下面) 随时更改设置。

    gccmrt

    gccmrt 是一个非常简单的脚本,它让你决定哪个Microsoft库应该链接到。 选择是永久"已经保存",因此运行脚本之后的每个编译都将使用指定的运行时库。 安装程序在安装时一次执行 gccmrt,因此只有在使用不同的运行时库( 例如:使用不同的运行时库) 时,才需要手动运行该安装程序 不同的python 版本)。

    只要在提示符( 假设你的路径配置正确) 中键入 gccmrt,就可以获得使用屏幕:

    
    gccmrt: configure the Microsoft runtime library to use for compilation
    
    
    
    Usage: gccmrt <60|70|71|80|90>
    
    
    
     60 - Link with MSVCRT.DLL (like Visual Studio '98 aka VC6)
    
    
     70 - Link with MSVCR70.DLL (like Visual Studio. NET aka VC70)
    
    
     71 - Link with MSVCR71.DLL (like Visual Studio. NET 2003 aka VC71)
    
    
     80 - Link with MSVCR80.DLL (like Visual Studio. NET 2005 aka VC80)
    
    
     90 - Link with MSVCR90.DLL (like Visual Studio. NET 2008 aka VC90)
    
    
    
    

    我想你不需要更多的指令。

    ( ) 如何工作( 以及它为什么工作)

    gccmrt通过使用你请求的版本覆盖 libmsvcrt.a,并更改GCC的内部 specs 文件来正确定义 __MSVCRT_VERSION__

    要写入的详细信息。 ( 但相信我,它有效)。

    作者

    我是 Giovanni Bajo rasky@develer.com。 因为我刚刚编写了安装脚本,所以对作者的一些定义


    Window  Windows  BIN  Binaries  GCC  ming  
    相关文章