2016-10-01 52 views
0

我使用的Ubuntu通過Windows的Linux bash和它發生,我嘗試編譯文件,我收到此錯誤:GCC在Windows Linux的慶典

"error: ‘for’ loop initial declarations are only allowed in C99 mode". 

但實際上我想不使用C99模式,但使用C11代替。我怎樣才能讓我的編譯器默認使用C11模式而不必傳遞任何標誌?

我的GCC版本是4.8.4,在ubuntu 14.04.3上運行。

謝謝。

+2

使用'-std = c11'。 –

+0

@KerrekSB我知道它的工作原理,但我希望將它設爲默認值! –

+0

用所需的默認值重新編譯GCC。 –

回答

0

您需要指定-std=c99-std=gnu99或更高,以允許在for循環中進行初始聲明。或者,只需首先聲明變量並稍後在for循環中使用它。

對於c11當然,-std=c11就是這樣。我不知道設置這個默認的方法,也許沒有辦法。但最近gcc compilers 5.x have c11 default

+0

如何將gcc更新爲5+版本?我試過sudo apt-get update,但似乎更新了。 –

+0

安裝一個好的發行版,如[Arch Linux](https://www.archlinux.org/),忘記與軟件包管理器不兼容的軟件包或類似問題。 –

0

除了自己重新構建GCC(複雜且容易出錯),更新GCC(更新的GCC可能無法編譯內核,內核開發人員和GCC開發人員並不總是如此,我該如何放置它... d'accord)並且每次輸入-std=c11,都可以設置別名。將下面的線在你的.bashrc

alias gcc11="gcc -std=c11" 

末讓殼重讀它由source ~/.bashrc的配置文件(如果我記得正確的Ubuntu),並嘗試一下。

您也可以調用別名gcc,但這可能會破壞第三方makefile。