2013-08-04 12 views
10

Kiedy chcę skompilować, trzeba określić -std=c++11 takiego:Making -std = C++ 11 domyślne w terminalu mac

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

i zastanawiam się, czy istnieje rozwiązanie, aby ustawić -std = C++ 11 flag na stałe więc będzie to możliwe do zrobienia:

g++ -Wall main.cpp -o main 

bez flagi.

+1

'alias g ++ = 'g ++ -std = C++ 11''? –

+1

Innym rozwiązaniem byłoby załatanie GCC, aby zawierało trochę bardziej świeżych/rozsądniejszych opcji niż domyślne 15-letnie standardy ... –

+0

łatanie? W przeciwnym razie alias działa poprawnie, dzięki. – Choubidou

Odpowiedz

10

Utwórz alias: alias g++='g++ -std=c++11' powinien załatwić sprawę.

(Jednak wersja GCC, że pochodzi z OS X jest tak starożytna, że ​​nie obsługuje C++ 11, byłbyś lepiej wyłączyć za pomocą clang i clang++.)

+0

Hum dotyczące dzyń: dzyń version Jabłko LLVM w wersji 4.2 (dzyń-425.0.28) (oparty na LLVM 3.2svn) docelowa : x86_64-apple-darwin12.4.0 Model gwintu: posix ale nie wiem jak go używać – Choubidou

+2

@Choubidou Cóż, tak samo jak GCC. (Ale hej, nie możesz po prostu google "użyć clang"? Lub "podręcznik klang"? Lub wpisz 'clang - help" w linii poleceń?) –

+1

Masz rację. clang ++ -std = C++ 11 main.cpp -o main :) – Choubidou

5

wiem, że to już ma akceptację, ale czuję, że mam jakąś radę do zaoferowania. Dla jednego powinieneś używać makefile dla C++, to jest ten, którego używam do odpowiadania na 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 

Teraz, kiedy mogę pobrać kod czyjąś brzydko z tak mam makefile dla C i C++ plików gdzie można łatwo zmienić flagi, jeśli chcę.

Jeśli chodzi o alias basha, sugerowałbym, abyś tak nazywał go tak, aby był alias clang++11='clang++ -std=c++11 w ten sposób, że nie zastąpisz clang++, jeśli nie chcesz używać standardu C++ 11. Na koniec możesz dodać linię, którą właśnie pokazałem twojemu .bash_profile na macu, który znajduje się w twoim katalogu domowym lub ~, spowoduje to, że zmiana będzie trwała. Po zmianie uruchom source .bash_profile, aby wprowadzić zmiany w życie. Na Linuksie myślę, że plik nazywa się .bashrc. Mam nadzieję, że te wskazówki pomogą ci, gdy ur C++ ing, radziłbym nauczyć się wiersza poleceń mac, różni się od linuxa, może być bardzo przydatny znać niektóre z rzeczy, które może zrobić.

Powiązane problemy