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

Posted

技术标签:

【中文标题】如何在 Windows 上的 MinGW 中更新 GCC?【英文标题】:How to update GCC in MinGW on Windows? 【发布时间】:2012-04-09 13:18:55 【问题描述】:

我以前在 Ubuntu 上习惯于从源代码手动安装 GCC,这是一个痛苦的过程。所以我真的不想重复这个过程。目前,我的机器上安装了 MinGW 和 GCC (4.6.2)。那么有没有一种简单的方法来更新 GCC 而无需完全从源代码构建它?有没有人做过,可以分享一些技巧吗?

【问题讨论】:

【参考方案1】:

如果没有,你只需要更新你的 g++ 编译器。

第一个问题可以通过这个解决:

使用 GUI 版本更新:

如果你不习惯终端,还有一个GUI版的MinGW,叫做“MinGW Installation Manager”,一般位于:

C:\MinGW\libexec\mingw-get\guimain.exe 当 GUI 打开时,点按

Installation -> Update Catalogue

。这将更新软件包列表。

之后,点按

Installation -> Mark All Upgrades

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

Installation -> Apply Changes 

应用升级。

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

【讨论】:

【参考方案2】:

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

【讨论】:

【参考方案3】:

使用终端更新:

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

    更新包列表:

    mingw-get update
    

    更新包列表后,运行:

    mingw-get upgrade
    

命令运行完成后,您的所有软件包都将升级。


使用 GUI 版本更新:

如果你不习惯终端,还有一个GUI版的MinGW,叫做“MinGW Installation Manager”,一般位于:

C:\MinGW\libexec\mingw-get\guimain.exe

    当 GUI 打开时,点击Installation -> Update Catalogue。这将更新软件包列表。

    之后,点击Installation -> Mark All Upgrades。这将选择所有可以升级的包。

    最后,点击Installation -> Apply Changes 应用升级。

【讨论】:

´mingw-get upgrade´ 崩溃(“[...] 已停止工作。”)。知道为什么吗? 供参考:您也可以通过输入不带参数的 mingw-get 来启动 GUI 版本【参考方案4】:

在 Windows 中获取最新的 MinGW64:https://sourceforge.net/projects/mingw-w64/?source=typ_redirect

适用于所有平台:https://mingw-w64.org/doku.php/download

【讨论】:

【参考方案5】:

如果你使用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

【讨论】:

【参考方案6】:

更新:截至 2012 年 11 月 5 日,MinGW 包括 GCC 编译器的 4.7.2,这是最新版本。我个人会使用 MinGW 包,因为它包含了MSYS 和其他工具,而且由于它是事实上的标准,我希望它得到更好的支持。唯一的缺点是包含的 GDB 不包含 Python 脚本,但我认为可以单独更新。


我不知道你是否可以在 MinGW 中更新 GCC,但是有更新版本的 GCC 来替代 MinGW 的项目。

MinGW-builds 项目提供了一个类似于 MinGW 的包,但带有更新的 GCC (4.7.2)。在将现有的 MinGW 移动到另一个文件夹后,我将文件提取到 c:\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。我会说这是自己编译所有内容后的最佳选择。【参考方案7】:

我已经构建了一个更新的 GCC 4.7(它是在代码冻结中构建的,所以它应该与发行版等效)。此外,此版本包含 <thread> 支持。

32-bit 64-bit

-gcc_linux 包是你想要在 Linux 上使用它的包。只需提取某处并将mingw??/bin 目录添加到PATH。

PS:有一个本地 Windows 编译器和一个 Windows Clang 构建。我建议仅将 Clang 与我的 GCC 4.6 版本之一一起使用,因为它与 GCC 4.7 的 libstd++ 有问题。将 Clang 包解压到与 GCC 包相同的目录中,它会开箱即用。

【讨论】:

【参考方案8】:

MinGW http://code.google.com/p/mingw-builds/downloads/list的快照和发布版本

【讨论】:

是否可以简单地解压 x86_64-mingw32-gcc-4.7.0-release-c,c++,fortran-sjlj.zip 并放入当前的 MinGW 安装中?由于库不兼容,这会破坏一些东西吗?它是否基本上禁用了 mingw-get 以便它不再跟踪 gcc 的更新? 正如@GravityWe11 的答案中所链接的,MinGW-builds 已移至sourceforge。您将在这里看到一些较新的版本,例如 GCC 4.7.2 版本。只需为任何未来的用户添加更新。 你也可以直接从mingw.org到MinGW官网选择下载从那里选择需要的下载

以上是关于如何在 Windows 上的 MinGW 中更新 GCC?的主要内容,如果未能解决你的问题,请参考以下文章

Webview 在 Windows 上的 mingw 中无法在 Qt Creator 中工作

Windows 上的 Boost::process - 使用 MinGW?

MinGW,链接到 Windows 上的 dll

MinGW:如何在 Windows 上将 GCC/G++ 升级到版本 5?

带有 MiNGW 的 Windows 上的 Python D-Bus

Windows 8 上的 MinGW