2013-07-11 72 views

回答

5

這是我最好的猜測。您用於編譯項目 的編譯器是gcc。你有-std=c++11設置在你的全球設置 這個編譯器,但安裝的版本gcc太舊, 認識到這個選項。

在代碼檢查了這一點:: Blocks的IDE:

  • 導航設置 - >編譯器

  • 從下拉菜單中標記選擇編譯,選擇GNU GCC編譯器

  • 在下面的選項卡上,選擇個編譯器設置 - >編譯器標誌

  • 從標有「類別」下拉菜單中選擇<All categories>

  • 看不起的編譯器選項的複選框列表,直到您看到:

得克++遵循C++ 11的ISO C++語言標準[-std = C++ 11]

  • 如果選中該複選框,那可能是您的問題。取消選中它,單擊確定, 然後嘗試重建您的項目。

如果解決了這個問題,你應該考慮升級GCC到支持-std=c++11選擇一個版本(> = 4.7) 你屆時將有最新的C++標準的C++ 語言和庫功能的支持。

如果你不能這樣做,你可能會發現-std=c++0x選項是可接受的 到您的編譯器。如果可行,它將提供對編譯器發佈時可用的C++ 11標準版本的臨時 版本的支持。

一個不太可能的情況比上面是您正在使用 建設項目中的編譯器是不是GCC,但其他一些和非命令行兼容 編譯器比你在代碼::塊通過複製建立海合會全局 配置,其中設置了-std-c++11選項。在這種情況下,您只需 必須確保沒有爲此編譯器配置的全局選項,即 它無法識別。

爲了您將來的參考,如果您遇到C++編譯器的命令行選項 問題,請說明它是什麼編譯器,以及哪個版本。

+0

我在回答之前發現了問題,但問題是在全局設置中檢查了它。無論如何,我仍然需要檢查我的編譯器版本。 –

+0

這是MinGW 4.6.2。這是舊的嗎? –

+2

@ MonetR.Adams是的,對於'-std-C++ 11'(你需要> = 4.7)來說太舊了,但它會接受'-std = C++ 0x'。 –

相關問題