Где в Qt можно указать дополнительные параметры компилятора? Например, -std = С++ 0x?
Добавление дополнительной опции компилятора в Qt
Ответ 1
Вы можете попробовать добавить
QMAKE_CXXFLAGS += -std=c++0x
в ваш .pro файл.
Однако это не должно использоваться в Qt 5 для включения определенного стандарта С++. Вместо этого c++11
или c++14
в переменной CONFIG
, чтобы сделать это. Он будет включать расширения GNU (-std = gnu ++ 11), но если это нежелательно, добавьте strict_c++
, если вы хотите их отключить. Например, это должно передать -std=c++11
компилятору:
CONFIG += c++11 strict_c++
Ответ 2
В вашем файле .pro вы можете добавить:
QMAKE_CXXFLAGS += -std=c++0x
Я думаю, что каждая переменная в spec qmake.conf
может быть изменена так.
Например, спецификация win32-g++ имеет среди прочих переменных следующие:
QMAKE_CC = gcc
QMAKE_LEX = flex
QMAKE_LEXFLAGS =
QMAKE_YACC = byacc
QMAKE_YACCFLAGS = -d
QMAKE_CFLAGS =
QMAKE_CFLAGS_DEPS = -M
QMAKE_CFLAGS_WARN_ON = -Wall
QMAKE_CFLAGS_WARN_OFF = -w
QMAKE_CFLAGS_RELEASE = -O2
QMAKE_CFLAGS_DEBUG = -g
QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
QMAKE_CXX = g++
QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
QMAKE_CXXFLAGS_RTTI_ON = -frtti
QMAKE_CXXFLAGS_RTTI_OFF = -fno-rtti
QMAKE_CXXFLAGS_EXCEPTIONS_ON = -fexceptions -mthreads
QMAKE_CXXFLAGS_EXCEPTIONS_OFF = -fno-exceptions
Ответ 3
Способ QT связан с параметрами компилятора через файл.pro. Если возможно, это обоюдоострый меч. Это создает хорошую абстракцию, особенно при компиляции больших проектов. Проблема в том, что вам нужно либо поискать, либо запомнить, как добавить флаг. В случае С++ 0X вы должны добавить следующий флаг в ваш.pro файл:
QMAKE_CXXFLAGS += -std=c++0x
К счастью, большинство флагов, которые вам нужны, автоматически добавляются, если вы используете QtCreator.