Dot*_*tti 48
你可以尝试添加
QMAKE_CXXFLAGS += -std=c++0x
Run Code Online (Sandbox Code Playgroud)
到您的.pro文件.
但是,这不应该在Qt 5中用于启用特定的c ++标准.相反,c++11或c++14在CONFIG变量中做到这一点.它将启用GNU扩展(-std = gnu ++ 11),但如果这是不需要的,strict_c++如果要禁用它们也添加.例如,这应该传递-std=c++11给编译器:
CONFIG += c++11 strict_c++
Run Code Online (Sandbox Code Playgroud)
Vin*_*ura 17
在.pro文件中,您可以添加:
QMAKE_CXXFLAGS += -std=c++0x
Run Code Online (Sandbox Code Playgroud)
我认为规范中的每个变量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
Run Code Online (Sandbox Code Playgroud)
QT处理编译器选项的方式是通过.pro文件.如果可能的话,这是一把双刃剑.它创建了一个很好的抽象,特别是在编译大型项目时.问题是您必须查找或记住如何添加标志.对于C++ 0X,您必须将以下标志添加到.pro文件中:
QMAKE_CXXFLAGS += -std=c++0x
Run Code Online (Sandbox Code Playgroud)
幸运的是,如果您使用QtCreator,则会自动添加您需要的大多数标志.