Ответ 1
Создайте псевдоним: alias g++='g++ -std=c++11'
должен сделать трюк.
(Однако версия GCC, которая поставляется с OS X, настолько древняя, что она не поддерживает С++ 11, вам лучше использовать clang
и clang++
.)
Когда я хочу скомпилировать, мне нужно указать -std=c++11
следующим образом:
g++ -Wall -std=c++11 main.cpp -o main
и мне интересно, было ли решение установить флаг -std = С++ 11 навсегда, чтобы было возможно:
g++ -Wall main.cpp -o main
без флагов.
Создайте псевдоним: alias g++='g++ -std=c++11'
должен сделать трюк.
(Однако версия GCC, которая поставляется с OS X, настолько древняя, что она не поддерживает С++ 11, вам лучше использовать clang
и clang++
.)
Я знаю, что это уже принято, но я чувствую, что у меня есть несколько советов. Для одного вы должны использовать make файл для С++, это тот, который я использую для ответа на 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
Теперь, когда я загружаю некорректный код из SO, у меня есть make файл для файлов c и С++, где я могу легко изменить флаги, если захочу.
Что касается псевдонима bash, я бы предложил вам псевдоним таким образом alias clang++11='clang++ -std=c++11
таким образом, вы не перезаписываете clang++
, если вы не хотите использовать стандарт С++ 11. Наконец, вы можете добавить строку, которую я только что показал вам на вашем .bash_profile
на Mac, который находится в вашей домашней папке или в папке ~
, это сделает изменение постоянным. После его изменения запустите source .bash_profile
, чтобы внести изменения в силу. В linux я думаю, что файл называется .bashrc
. Надеюсь, эти советы помогут вам в ур С++ ing, я бы посоветовал вам изучить командную строку Mac, имеет отличия от Linux, может быть очень полезно знать некоторые из вещей, которые он может сделать.