在 Windows 上玩 GCC 4.6

Posted

技术标签:

【中文标题】在 Windows 上玩 GCC 4.6【英文标题】:playing with GCC 4.6 on windows 【发布时间】:2010-11-07 21:56:22 【问题描述】:

我很高兴发现 GCC 4.6 支持range-based for loop。我在 xvidvideo.ru 上找到了 MinGW 4.6 的实验版本,这是一个知名的可靠网站吗?我还有哪些其他选择(除了从源代码编译自己)?

【问题讨论】:

【参考方案1】:

我想在 Windows 7 下使用最新的Code::Blocks 试用 GCC 4.7。

这是我为自己做的,YMMV:

    我在以下位置下载了最新的 Equation GCC 文件: ftp://ftp.equation.com/gcc/ 并将其安装在我本地计算机上的目录 C:\gcc\ 下。安装程序对路径环境变量进行必要的更改。注销并重新启动它们。

    我下载了Code::Blocks 最新的夜间版本:http://forums.codeblocks.org/index.php?board=20.0 并按照设置说明进行操作。

    按照设置说明(包括所需的DLL文件),并首次启动C::B;

    我为“编译器自动检测”窗口选择了“GNU GCC 编译器”和“设置为默认值”。

    在“设置 > 编译器... > 编译器设置”选项卡下: 我勾选了“让 g++ 遵循即将到来的 C++0x ISO C++ 语言标准 [-std=c++0x]”复选框。

    在“设置 > 编译器... > 工具链可执行文件”选项卡下: 我将“编译器的安装目录”输入字段更改为C:\gcc\bin\

    我更改了物理上位于C:\gcc\bin\ 目录中的这些文件的名称

    i686-pc-mingw32-gcc.exe  -=to=-  mingw32-gcc.exe
    
    i686-pc-mingw32-g++.exe  -=to=-  mingw32-g++.exe
    
    make.exe                 -=to=-  mingw32-make.exe
    

    以匹配Code::Blocks 中列出的名称要求。您可以简单地浏览以设置正确的文件(我个人更喜欢重命名以匹配 C::B 的条目)。

如果一切正常,你应该可以创建这个程序了:

#include <iostream>
#include <vector>

int main() 
    using namespace std;

    vector<int> my_vec =  1, 2, 3, 4, 5 ;
    for (auto x : my_vec) 
        cout << x << endl;
    

并在 Code::Blocks 下按 F9 运行它。

感谢大家为将这种伟大的语言带给我们所做的所有出色工作。快乐的 C++0x 计算!

巴德·阿尔弗森 (对不起这篇文章的基本性质):)

【讨论】:

非常感谢!我不会重命名磁盘上的文件,而是更改 CB 设置,但无论如何 - 你描述的过程对我有用,+1【参考方案2】:

我不太熟悉您链接的网站,因为它是俄语的。我发现提供 GCC 构建的当前快照的唯一其他地方来自 Equation Solution。我从那里下载了 gcc4.5.1,它对我来说效果很好。不过,我还没有尝试过 4.6.x 版本。有传言说 gcc 4.6.x 比它的前辈慢。

如果您决定进行实验,请务必报告您看到的结果类型。我很好奇他们在 4.6.x 系列中做了哪些改进。

【讨论】:

mingw gcc 4.5.1(32 位和 64 位)也可从 cygwin 获得。不知道他们什么时候会有 4.6 版本。 @Ben:64 位版本来自 mingw-w64 项目,该项目非常接近 GCC 开发。 4.6 可能会在正式发布时可用,或者当我开始构建它并将其上传到 mingw-w64 站点 ;) @rubenvb:太棒了。与某些俄罗斯网站相比,这是一个更安全的地方供人们下载。 @rubenvb 我想知道为什么有人还没有这样做?肯定还有其他人想要尝试一下。 @Ben 我想你总是可以通过像 virustotal 这样的病毒扫描网站运行下载的 mingw 以确保它是安全的。 @Victor:我已经上传了一个 4.6 版本,但现在它已经过时并且从未经过测试(它也无法自我复制)。 GCC 构建系统非常脆弱,尤其是在当前的 dev 分支上,事情经常中断......尤其是在像 mingw 这样“不太重要”的目标上(我知道这很奇怪,看看有多少 Windows 用户以及跨平台项目也为 Windows 构建,但那是 GNU 适合你)。最新的是 GCC 4.6:链接:sourceforge.net/projects/mingw-w64/files/…

以上是关于在 Windows 上玩 GCC 4.6的主要内容,如果未能解决你的问题,请参考以下文章

为啥我不需要在 gcc 4.6 中包含 STL 标头?

gcc 4.6 编译器的奇怪行为

已安装 4.6 时如何满足 .Net Framework 4.0 要求

如何在mac上玩windows游戏

在Windows上玩TensorFlow——安装Docker

Ubuntu下两个gcc版本切换