Подтвердить что ты не робот

С++ Qt - Как добавить "-std = С++ 11" в make файл, который генерируется qmake?

Я разрабатываю программу в Qt. Его make файл автоматически создается из файла .pro. Мне нужно использовать некоторый код, для которого нужно установить флаг -std = С++ 11 для g++. Где в .pro следует добавить этот флаг? (изменение только Makefile не будет работать, поскольку оно будет перезаписано вновь созданным, каждый раз, когда я создам проект).

4b9b3361

Ответ 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. (Возможно, некоторые подобные изменения необходимы для других ОС или версий ОС.)

(Аналогичная проблема в 1 и 2.)

Ответ 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.