Создание -std = С++ 11 по умолчанию в терминале mac - программирование
Подтвердить что ты не робот

Создание -std = С++ 11 по умолчанию в терминале mac

Когда я хочу скомпилировать, мне нужно указать -std=c++11 следующим образом:

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

и мне интересно, было ли решение установить флаг -std = С++ 11 навсегда, чтобы было возможно:

 g++ -Wall main.cpp -o main

без флагов.

4b9b3361

Ответ 1

Создайте псевдоним: alias g++='g++ -std=c++11' должен сделать трюк.

(Однако версия GCC, которая поставляется с OS X, настолько древняя, что она не поддерживает С++ 11, вам лучше использовать clang и clang++.)

Ответ 2

Я знаю, что это уже принято, но я чувствую, что у меня есть несколько советов. Для одного вы должны использовать 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, может быть очень полезно знать некоторые из вещей, которые он может сделать.