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