Qt 5:CONFIG + = c ++ 11 vs QMAKE_CXXFLAGS + = - std = c ++ 11(什么更好)

Car*_*rte 1 c++ qt std c++11 qt5

我知道如果你想为C++11你的Qt代码添加功能,你需要在.pro文件中写下这一行:

QMAKE_CXXFLAGS += -std=c++11, 
Run Code Online (Sandbox Code Playgroud)

但你也可以用另一条代替它:

CONFIG+=c++11.
Run Code Online (Sandbox Code Playgroud)

问题是:什么更好用?

Vic*_*voy 6

CONFIG+=c++11更好,因为它是由qmake工具处理的,它知道如何正确设置它,而QMAKE_CXXFLAGS += -std=c++11几乎直接说qmake要设置-std=c++11标志到编译器,但它可能无法工作,因为它在某处-std=gnu++11或甚至-std=c++0x所以你可能有编译器错误.因此,它不仅仅是一个错误,而是一个可移植性.

qt5-qmake文档:

CONFIG

指定项目配置和编译器选项.这些值由qmake在内部识别,具有特殊含义.