在Qt中添加额外的编译器选项

sma*_*llB 43 c++ qt qt-creator

在Qt中我可以指定其他编译器选项吗?比如-std = c ++ 0x?

Dot*_*tti 48

你可以尝试添加

QMAKE_CXXFLAGS += -std=c++0x
Run Code Online (Sandbox Code Playgroud)

到您的.pro文件.

但是,这不应该在Qt 5中用于启用特定的c ++标准.相反,c++11c++14CONFIG变量中做到这一点.它将启用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)


kmd*_*ent 6

QT处理编译器选项的方式是通过.pro文件.如果可能的话,这是一把双刃剑.它创建了一个很好的抽象,特别是在编译大型项目时.问题是您必须查找或记住如何添加标志.对于C++ 0X,您必须将以下标志添加到.pro文件中:

QMAKE_CXXFLAGS += -std=c++0x
Run Code Online (Sandbox Code Playgroud)

幸运的是,如果您使用QtCreator,则会自动添加您需要的大多数标志.