Я использую gcc 4.8.1 с http://hpc.sourceforge.net на Mac OSX Mountain Lion. Я пытаюсь скомпилировать программу на C ++, которая использует to_string
функцию в <string>
. Мне нужно использовать флаг -std=c++11
каждый раз:
g++ -std=c++11 -o testcode1 code1.cpp
Есть ли способ включить этот флаг по умолчанию?
CXXFLAGS
.Ответы:
H2CO3 прав, вы можете использовать make-файл с CXXFLAGS, установленным с -std = c ++ 11 Makefile - это простой текстовый файл с инструкциями о том, как скомпилировать вашу программу. Создайте новый файл с именем Makefile (с заглавной буквы M). Чтобы автоматически скомпилировать код, просто введите команду make в терминале. Возможно, вам придется установить make.
Вот простой:
Предполагается, что все файлы .cpp находятся в том же каталоге, что и make-файл. Но вы можете легко настроить свой make-файл для поддержки каталогов src, include и build.
Изменить : я изменил компилятор C ++ по умолчанию, моя версия g ++ устарела. С clang ++ этот make-файл работает нормально.
источник
Как упоминалось ранее - в случае проекта,
Makefile
или в противном случае это проблема конфигурации проекта, где вам, вероятно, также потребуется указать другие флаги.Но как насчет разовых программ, в которых вы обычно просто пишете
g++ file.cpp && ./a.out
?Что ж, я бы очень хотел, чтобы некоторые из них
#pragma
были включены на уровне исходного кода, или, может быть, расширение по умолчанию - скажем.cxx
или.C11
или независимо от того , вызвать его по умолчанию. Но на сегодняшний день такой функции нет.Но, поскольку вы, вероятно, работаете в ручной среде (например, в оболочке), у вас может быть просто псевдоним
.bashrc
(или что-то еще):или для более нового G ++ (и когда вы хотите почувствовать себя "настоящим C ++ 11")
Вы даже можете присвоить
g++
себе псевдоним , если вы так сильно ненавидите C ++ 03;)источник
Я думаю, вы могли бы сделать это с помощью файла спецификаций.
Под MinGW вы можете запустить
gcc -dumpspecs> specs
Где говорится
Вы измените его на
А затем поместите его в
/ mingw / lib / gcc / mingw32 / <version> / specs
Я уверен, что вы могли бы сделать то же самое без сборки MinGW. Не уверен, где разместить файл спецификаций.
Возможно, это / gcc / lib / или / gcc /.
источник
strace -f gcc your-sources-here 2>&1 | grep specs
. В одной (более старой) системе Debian это дает/usr/lib/gcc/i586-linux-gnu/4.9/specs
. Создано,specs
как описано в ответе (требуется sudo, чтобы переместить его туда под Linux), и работает как шарм! Спасибо.Если вы используете возвышенное, этот код может работать, если вы добавите его в сборку как код для сборки системы. Вы можете использовать эту ссылку для получения дополнительной информации.
источник