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

时间:2011-07-07 16:41:04

标签: c++ qt qt-creator

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

3 个答案:

答案 0 :(得分:47)

您可以尝试添加

QMAKE_CXXFLAGS += -std=c++0x

到您的.pro文件。

但是,这不应该在Qt 5中用于启用特定的c ++标准。相反,c++11变量中的c++14CONFIG可以做到这一点。它将启用GNU扩展(-std = gnu ++ 11),但如果这是不需要的,如果要禁用它们,还要添加strict_c++。例如,这应该将-std=c++11传递给编译器:

CONFIG += c++11 strict_c++

答案 1 :(得分:17)

在.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

答案 2 :(得分:6)

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

QMAKE_CXXFLAGS += -std=c++0x

幸运的是,如果您使用QtCreator,则会自动添加您需要的大部分标志。