mac上c++11的編譯問題
阿新 • • 發佈:2019-01-24
因為沒有翻牆,就在百度上搜遇到的這個小問題的答案,找的真是心煩意亂。
記載一下,以供備用。
在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讓別名命令生效。
以上。