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

在Qt中,我可以指定额外的编译器选项? 像例如-std = c ++ 0x?

你可以尝试添加

 QMAKE_CXXFLAGS += -std=c++0x 

到您的.pro文件。

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

 CONFIG += c++11 strict_c++ 

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

 QMAKE_CXXFLAGS += -std=c++0x 

我认为规范的qmake.conf中的每个variablesqmake.conf可以这样改变。

例如,win32-g ++规范包含以下这些variables:

 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 

阿门和小B,

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

 QMAKE_CXXFLAGS += -std=c++0x 

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

快乐的编码,凯尔