Ответ 1
Вы можете добавить следующее в Qt.pro для С++ 11: -
CONFIG += c++11
Как и в Qt 5.4, С++ 14 можно включить с помощью
CONFIG += c++14
Я разрабатываю программу в Qt. Его make файл автоматически создается из файла .pro. Мне нужно использовать некоторый код, для которого нужно установить флаг -std = С++ 11 для g++. Где в .pro следует добавить этот флаг? (изменение только Makefile не будет работать, поскольку оно будет перезаписано вновь созданным, каждый раз, когда я создам проект).
Вы можете добавить следующее в Qt.pro для С++ 11: -
CONFIG += c++11
Как и в Qt 5.4, С++ 14 можно включить с помощью
CONFIG += c++14
Вы можете изменить флаги CXX:
QMAKE_CXXFLAGS += -std=c++11
Я обычно устанавливаю его как:
QMAKE_CXXFLAGS += -std=c++11 -Wall -Wextra -pedantic
Возможно, вам захочется вставить конкретный флаг (который вы упомянули)
QMAKE_CXXFLAGS += -std=c++11
в вашем .pro файле, но это введет именно этот флаг от вашего имени.
Это недостаточно. Правильный способ - вставить вместо этого
CONFIG += c++11
в вашем .pro файле. Затем два или три необходимых изменения выполняются с помощью qmake
:
-std=c++11
.-stdlib=libc++
.-mmacosx-version-min=10.6
становится -mmacosx-version-min=10.7
. (Возможно, некоторые подобные изменения необходимы для других ОС или версий ОС.)Я использую Snow Leopad 10.6.8 и gcc 4.9, мне пришлось использовать
CONFIG += c++11
вместо
QMAKE_CXXFLAGS += -std=c++11
Последний просто не был признан.
CONFIG += c++11
в .pro файле работает для меня с Qt4 SDK после установки qt5-default на рабочем столе Ubuntu:
sudo apt install qt5-default
В любом случае сгенерированный make файл содержит параметр -std=c++0x
, который, как я подозреваю, достаточен для компиляции моего кода на С++ 11.