2013-08-04 4 views
10

で-std = C++ 11デフォルト私がコンパイルしたい場合は、私はこのような-std=c++11を指定する必要が作る:は、Mac端子

g++ -Wall -std=c++11 main.cpp -o main 

をして-stdを設定するための解決策があった場合、私は疑問に思います= C++ 11フラグは永久にできるようにする:

g++ -Wall main.cpp -o main 

フラグなし。

+1

'エイリアスg ++ = 'g ++ -std = C++ 11''? –

+1

もう1つの解決策は、GCCにパッチを適用して、15年前の標準にデフォルト設定するよりも新鮮な/より賢明なオプションが含まれるようにすることです。 –

+0

パッチ適用? それ以外の場合、エイリアスは正常に動作します。ありがとうございます。 – Choubidou

答えて

10

エイリアスを作成します。alias g++='g++ -std=c++11'は、このトリックを行う必要があります。

(ただし、OS Xに付属しているGCCのバージョンは、それがC++ 11をサポートしていないように古代である、あなたはclangclang++を使用したほうが良いと思います。)

+0

ハムに関する打ち鳴らすことができます: 打ち鳴らす--version アップルLLVMバージョン4.2(打ち鳴らす-425.0.28) (LLVMの3.2svnに基づく)ターゲット:x86_64-apple-darwin12.4.0 スレッドモデル:posix しかし、私はそれを使用する方法がわかりません – Choubidou

+2

@Choubidouまあ、GCCを使用するのと同じです。 (しかし、ちょっと、ちょうどgoogle "clang usage"か "clang manual"か、コマンドラインに 'clang --help'と打つことはできませんか?) –

+1

あなたはそうです。 clang ++ -std = C++ 11 main.cpp -o main :) – Choubidou

5

私はすでにこれを知っています受け入れているが、私はいくつかのアドバイスを提供するように感じる。 1つは、C++用のmakefileを使用する必要がありますが、これは私がSOに答えるために使用するものです。私はSOから誰かの安っぽいコードをダウンロードするたび

CFLAGS=-std=c++11 
CFLAGS+=-stdlib=libc++ 
CC=clang++ 
#flags for test.c 
cc=clang 
DEBUG=-g 
#warnings 
WARNINGS=-Weverything 
#always have -Weverything on for SO lol 
OPT= -O0 -O1 -O2 -O3 -O4 

test: test.cpp 
    $(info set CC for compiler) 
    $(CC) $(CFLAGS) $< -o [email protected] $(DEBUG) 

stack: stack.cpp 
    $(CC) $(CFLAGS) stack.cpp -o [email protected] $(DEBUG) $(WARNINGS) 

testc: test.c 
    $(cc) $< -o [email protected] $(DEBUG) 


clean: 
    rm test 

は、今私は私がしたい場合、私は簡単にフラグを変更することができ、CおよびC++ファイル用のメイクファイルを持っています。

bashエイリアスについては、alias clang++11='clang++ -std=c++11のように別名を付けることをお勧めします.C++ 11標準を使用しない場合はclang++を上書きしないでください。最後に、自分の家にあるMacの.bash_profileに表示された行を追加したり、~フォルダに追加したりすると、変更が永続的になります。変更したら、source .bash_profileを実行して変更を適用します。 Linuxの場合、ファイルは.bashrcと考えられます。うまくいけば、これらのヒントはあなたの助けになるでしょうが、私はあなたにMacコマンドラインを学び、Linuxとは違いがあります。できることを知ることは非常に便利です。

関連する問題