我目前在我的 Qt 应用程序中使用 C++11 功能。不过,我想在我的应用程序中使用一些新的 C++14 功能。
要在Qt应用程序中启用C++11,只需要在qmake工程文件中添加一行,即:
CONFIG += c++11
或者这个对于早期版本:
QMAKE_CXXFLAGS += -std=c++1y
我已经尝试过对 C++14 做同样的事情,但没有成功。我像这样更改了 qmake 项目的上述行:
CONFIG += c++14
或者这个对于早期版本:
QMAKE_CXXFLAGS += -std=c++1y
之后,在尝试构建项目时会出现许多以前不存在的编译错误。该项目编译良好,但是,如果我尝试使用任何 C++14 功能,则会出现编译错误。这是一个例子:
template<typename T>
constexpr T pi = T(3.1415926535897932385);
这是对应的错误:
main.cpp:7: error: template declaration of 'constexpr const T pi'
constexpr T pi = T(3.1415926535897932385);
^
在 QtCreator 中使用 qmake 项目时如何启用 C++14 功能?
我正在使用 Qt 5.3.2、Qt Creator 3.2.1 和 MinGW 4.8.2 32 位。
最佳答案
This is now supported properly from Qt 5.4 .您只需将其输入到您的 qmake 项目文件中:
CONFIG += c++14
Thiago 在 2014 年年中进行了必要的代码更改:
Add support for CONFIG += c++14
我刚刚创建了必要的文档更改:
Mention the c++14 CONFIG option in the qmake variable reference
请注意,变量模板仅受 gcc 5.0 支持,但您的代码工作正常。这可用于使用旧版 gcc 测试 C++14:
main.cpp
#include <iostream>
int main()
{
// Binary literals: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3472.pdf
// Single-quotation-mark as a digit separator: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3781.pdf
std::cout << 0b0001'0000'0001;
return 0;
}
main.pro
TEMPLATE = app
TARGET = main
CONFIG -= qt
CONFIG += c++14
SOURCES += main.cpp
构建并运行
qmake && make && ./main
输出
257
关于c++ - 在构建 qmake 项目时如何使用 C++14 功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26127217/