Last Updated on 2021-09-18 by Clay
問題描述
今天我在 Mac OS 上撰寫程式的時候,突然發現有些舊程式(之前是在 Windows 作業系統上編譯的)在編譯時會跑出以下警吿:
warning: 'auto' type specifier is a C++11 extension [-Wc++11-extensions]
在某些任務中甚至讓編譯直接失敗。查詢了之後發現無法直接改設定讓其生效,需要在編譯時加入 -std=c++11
的參數,於是我決定直接改動 ~/.bash_profile 設定檔。(如果你是其他腳本語言,就與之改動相對應的設定檔)
解決方法
在 Terminal 中輸入以下指令:
echo 'alias g++="g++ -std=c++11"' >> ~/.bash_profile
source ~/.bash_profile
這樣一來,以後使用 g++ 編譯時就會自帶 -std=c++11
參數了。試著編譯看看,原先有著的警告訊息應該消失了。
References
- https://stackoverflow.com/questions/36962475/warning-auto-type-specifier-is-a-c11-extension-wc11-extensions
- https://stackoverflow.com/questions/39022787/error-non-aggregate-type-vectorint-cannot-be-initialized-with-an-initialize