1. 程式人生 > >mac上c++11的編譯問題

mac上c++11的編譯問題

因為沒有翻牆,就在百度上搜遇到的這個小問題的答案,找的真是心煩意亂。
記載一下,以供備用。

在mac終端編譯C++,大多情況下,因為新加了C++11的特性,會提示warning,比如auto這樣的關鍵字。

雖然warning,但是程式能跑,也就沒有太過在意。

這次在g++下編譯含lambda表示式函式就不行,總是expected expression

最後發現問題來自於:沒有開啟在C++11下編譯模式。
怎麼做:可以在每條g++ -o name sth.cpp -std=c++11
也可以更省事的做法是在 ~/.bashrc中加入一條:

echo “alias g++=’g++ -std=c++11’” >> ~/.bashrc
source ~/.bashrc
這樣就解決了當下的問題。
但是終端關閉再次開啟,還得再次source ~/.bashrc才行,因此最好是將別名放在~/.bash_profile中,則時時有效。

比如常用的:

alias g++='g++ -std=c++11'
alias py='python'
alias py3='python3'
alias pull='git pull origin master'
alias push='git push origin master'
alias add='git add'
alias commit='git commit -m'
alias checkout='git checkout'
alias status='git status'
alias ll='ls -al'

當然別忘了,source ~/.bash_profile讓別名命令生效。

以上。