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

C++ 在Qt中添加额外的编译器选项,c++,qt,qt-creator,C++,Qt,Qt Creator,在Qt中的哪里可以指定其他编译器选项?例如-std=c++0x?您可以尝试添加 QMAKE_CXXFLAGS += -std=c++0x 到你的.pro文件 但不应在QT 5中使用,以启用特定的C++标准。相反,请在CONFIG变量中使用c++11或c++14。它将启用GNU扩展(-std=GNU++11),但如果不需要,如果要禁用这些扩展,还可以添加strict\u c++。例如,这应该将-std=c++11传递给编译器: CONFIG += c++11 strict_c++ 在.pro文

在Qt中的哪里可以指定其他编译器选项?例如-std=c++0x?

您可以尝试添加

QMAKE_CXXFLAGS += -std=c++0x
到你的.pro文件

<>但不应在QT 5中使用,以启用特定的C++标准。相反,请在
CONFIG
变量中使用
c++11
c++14
。它将启用GNU扩展(-std=GNU++11),但如果不需要,如果要禁用这些扩展,还可以添加
strict\u c++
。例如,这应该将
-std=c++11
传递给编译器:

CONFIG += c++11 strict_c++

在.pro文件中,您可以添加:

QMAKE_CXXFLAGS += -std=c++0x
我认为规范的
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

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

QMAKE_CXXFLAGS += -std=c++0x

幸运的是,如果您在Qt designer中使用QtCreator,您需要的大多数标志都会自动添加。

?上网本?您将什么用作IDE?您的意思是在
qmake
文件中吗?我不知道TS的确切意思,但我想知道如何在.pro文件中指定编译器选项。@很抱歉,我没有提到,我使用的是QTDesigner如果您使用CONFIG+=c++11,则此特定标志也会为您完成。即使很明显,文档如下所示: