在 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的主要内容,如果未能解决你的问题,请参考以下文章
已安装 4.6 时如何满足 .Net Framework 4.0 要求