2011-04-09 163 views
1

我已經下載了GCC 4.6的二進制文件,我已經在code :: blocks中設置了工具鏈可執行文件,但是這個編譯失敗(我可以從命令行編譯它):GCC 4.6似乎不工作

int main() 
{ 
int array[5] = { 1, 2, 3, 4, 5 }; 
for (int& x : array) 
    x *= 2; 
    return 0; 
} 

我該怎麼做才能在code :: blocks中正確配置編譯器?

+1

任何錯誤信息? – phooji 2011-04-09 15:39:51

+0

@phooji我得到的錯誤消息是初始化器在':'之前預期,這將表明這個編譯器不支持這個功能,但正如我以前一樣,我可以用這個**編譯器編譯這個文件從命令行 – 2011-04-09 15:42:43

+0

@There - 它是'C++ 0x'中的一個特性來寫'for'循環嗎?而且,'x'可以接受整數變量的引用,但'array'的類型爲'int []'。我知道它衰變爲'int *'但仍然不是左值和右值類型是不同的。這些是新功能嗎? – Mahesh 2011-04-09 15:46:52

回答

3

你一定要告訴克+ +,它應該與編譯的C++ 0x語法:

g++ --std=c++0x prog.cpp -o prog.x 

因爲是新的C++ 0x 範圍,爲語法:

for (int& x : array) 

如果這不起作用,請確認您使用GCC 4.6+

[email protected]:~$ gcc --version 
gcc (Ubuntu 4.4.3-4ubuntu5) 4.4.3 

因爲4.4不是就夠了。