如何在Windows上的MinGW中更新GCC?

79

我曾在Ubuntu上手动从源代码安装GCC,这是一个痛苦的过程。因此,我真的不想再重复这个过程。目前,我的机器上已安装了MinGW和GCC(4.6.2)。那么,有没有一种简单的方法可以更新GCC,而不必完全从源代码构建它?之前有没有人做过并能分享一些技巧?

8个回答

124

使用终端更新:

  1. 运行命令提示符/终端 (cmdsh)。

  2. 更新软件包列表:

mingw-get update
  • 更新软件包列表后,运行:

  • mingw-get upgrade
    
    当命令运行完毕后,您的所有软件包将被升级。

    使用GUI版本更新:

    如果您不习惯终端,MinGW也有一个名为“MinGW安装管理器”的GUI版本,通常位于:

    C:\MinGW\libexec\mingw-get\guimain.exe
    
    1. 当 GUI 打开时,点击 Installation -> Update Catalogue。这将会更新软件包列表。

    2. 然后,点击 Installation -> Mark All Upgrades。这将会选中所有能够升级的软件包。

    3. 最后,点击 Installation -> Apply Changes 来应用这些升级。


    7
    为什么“mingw-get upgrade”会崩溃(弹出“[...]已停止工作”错误)?有任何想法吗? - Zyl
    1
    供参考:您也可以通过只输入mingw-get而不带参数来启动GUI版本。 - Antony Thomas

    26

    1
    直接解压x86_64-mingw32-gcc-4.7.0-release-c,c++,fortran-sjlj.zip并放入当前MinGW安装目录,这样做是否可以?这样做是否会因库不兼容而破坏某些内容?这是否基本上禁用了mingw-get的功能,使其不再跟踪gcc的更新? - Kan Li
    7
    正如@GravityWe11的回答中所链接的,MinGW-builds已经迁移到sourceforge。在那里你可以找到一些更新的版本,例如GCC 4.7.2构建版本。这里只是为了对未来的用户进行更新。 - Anthony Burleigh
    您也可以直接从http://www.mingw.org/访问MinGW官方网站,并选择下载以选择所需的下载。 - Srijan Chaudhary

    14
    更新:截至2012年11月5日,MinGW已经包含了最新版本的GCC编译器4.7.2。我个人将使用MinGW软件包,因为它包括MSYS和其他工具,并且它是事实上的标准,我希望它能得到更好的支持。唯一的缺点是所包含的GDB不包括Python脚本,但我认为可以单独更新。
    我不知道你是否能够更新MinGW中的GCC,但是有一些替代项目可以提供更新版本的GCC。 MinGW-builds 项目提供了一个类似于MinGW的软件包,但是它具有更新的GCC(4.7.2)版本。我将文件提取到c:\MinGW中(这样我就可以使用相同的路径),在将现有的MinGW移动到另一个文件夹之后。只有MinGW具有MSYS,所以如果你需要它(我需要),请从原始的MinGW复制msys文件夹。
    安装MinGW-builds之后,运行g++ --version的结果为:
    g++ (Built by MinGW-builds project) 4.7.2
    

    目前标准MinGW附带的最新GCC版本为4.7.0。我在Code::Blocks中编译了一些简单的项目和最新的wxWidgets源代码,一切似乎都正常。

    值得注意的是,MinGW-builds包括启用Python脚本的GDB版本,以便您需要STL漂亮打印支持或其他GDB Python功能。

    另一个不错的选择是TDM-GCC,它是一个托管令人印象深刻的安装程序的项目,其中包括更新的GCC编译器(4.7.1)和支持工具。这是一个独立的软件包。据我所知,该软件包附带的GDB不支持Python脚本。

    最后是MinGW-w64项目,它是MinGW的一个分支。回答此问题的Rubenvb在个人构建文件夹中提供了基于该项目的优良独立软件包,其中包括更新的GCC(4.7.2)。附带的GDB似乎启用了Python脚本。


    目前,MinGW-w64 包括最新的 GCC 版本:5.1.0。我会说,在自己编译所有内容之后,这是最佳选择。 - Ignas2526

    10

    如果您使用 MSYS2,只需打开mingw64-console窗口并输入:

    # Update the package database and core system packages with:
    pacman -Syu  
    
    # If needed, close MSYS2, run it again from Start menu. Update the rest with:
    pacman -Su
    

    4
    我已经构建了一个更新的GCC 4.7版本(在代码冻结期内构建,因此应该与发布版相当)。此版本还包含<thread>支持。
    以下是下载链接: 如果您想在Linux上使用,请选择-gcc_linux软件包。只需将其解压到任意目录,并将mingw??/bin目录添加到PATH中即可。
    PS:还有一个本地Windows编译器和Windows Clang版本。我建议只使用其中一个GCC 4.6版本的Clang,因为它在使用GCC 4.7的libstd++时会出现问题。将Clang软件包解压到与GCC软件包相同的目录中,即可直接使用。

    3

    http://winlibs.com/下载的MinGW-w64构建具有最新的GCC版本,无需安装,只需解压即可。要升级,您只需用新版本替换mingw32或mingw64文件夹。


    2
    你只需要更新你的g++编译器,如果没有更新的话。
    首先,可以通过以下方式解决问题:
    使用GUI版本进行更新:
    如果你不习惯使用终端,也可以使用名为“MinGW安装管理器”的MinGW GUI版本,通常位于以下路径:
    C:\MinGW\libexec\mingw-get\guimain.exe 打开GUI后,点击...
    Installation -> Update Catalogue
    

    这将更新软件包列表。

    之后,点击

    Installation -> Mark All Upgrades
    

    这将选择所有可以升级的软件包。 最后,点击

    Installation -> Apply Changes 
    

    申请升级。

    第二个问题可能是您没有在环境变量中更新mingw的路径。


    2

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接