Qt 5:CONFIG+=c++11 与 QMAKE_CXXFLAGS+=-std=c++11 (更好的)
Posted
技术标签:
【中文标题】Qt 5:CONFIG+=c++11 与 QMAKE_CXXFLAGS+=-std=c++11 (更好的)【英文标题】:Qt 5: CONFIG+=c++11 vs QMAKE_CXXFLAGS+=-std=c++11 (What's better) 【发布时间】:2014-12-10 22:53:38 【问题描述】:我知道如果你想在你的 Qt 代码中添加 C++11
特性,你需要在你的 .pro 文件中写下这一行:
QMAKE_CXXFLAGS += -std=c++11,
但你也可以使用另一行来代替它:
CONFIG+=c++11.
问题是:用什么比较好?
【问题讨论】:
【参考方案1】:CONFIG+=c++11
更好,因为它由知道如何正确设置它的qmake
工具处理,而QMAKE_CXXFLAGS += -std=c++11
几乎直接告诉qmake
将-std=c++11
标志设置为编译器,但它可能不起作用,因为某处是-std=gnu++11
甚至-std=c++0x
,所以您可能遇到编译器错误。因此,这不仅与错误有关,还与可移植性有关。
来自the qt5-qmake documentation:
配置
指定项目配置和编译器选项。这些值由 qmake 内部识别并具有特殊含义。
【讨论】:
没错,但是我尝试使用 CONFIG+=c++11 编译 Qt5 代码,以使用基于范围的 Qt 容器(准确来说是 QList),但我遇到了编译器错误,然后我将其更改为 QMAKE_CXXFLAGS += -std=gnu++11 并且效果很好。感谢您的回答。 嗯,在你问这个问题的时候它对我有用。以上是关于Qt 5:CONFIG+=c++11 与 QMAKE_CXXFLAGS+=-std=c++11 (更好的)的主要内容,如果未能解决你的问题,请参考以下文章
Qt5 msvc 2010不识别自动(c ++ 11)[重复]
Qt Creator 2.7.0 (Qt 5.0.2) 中的 C++11 线程支持