在qtcreator中编译C ++ 14

时间:2016-07-10 15:52:28

标签: c++ qt qt-creator c++14

我有一个包含C++14部分的qt项目。

最近,我改变了我的ubuntu发行版。现在我有16.04 LTS,我安装了Qt creator 4.02(建于Jun 13)。

为了启用C++14编译,我输入了项目文件:

QMAKE_CXXFLAGS += -std=c++14

但是,在构建项目时,IDE会生成以下命令:

g++ -c -pipe -std=c++14 -g -O0 -g -std=gnu++11 -Wall -W -D_REENTRANT ...

如图所示,生成的makefile将标记-std=gnu++11置为C++14的标志。我以前的发行版(LTS 12.04,同样的qt创建者版本)没有发生这种情况。

我试过

CONFIG += -std=c++14

但行为是一样的。

有人能给出任何线索吗?

2 个答案:

答案 0 :(得分:7)

而不是:

CONFIG += -std=c++14

使用:

CONFIG += c++14

答案 1 :(得分:2)

你可以从根本上解决它。通过更改配置文件。

首先,您需要在项目中使用的库路径。您可以确定查看项目面板(Ctrl + 5)并记住"套件"的名称的路径。在(Build|Run)按钮上,然后按Tools -> Options -> Build & Run -> Kits,选择"套件"您以前记得,然后您可以看到Qt version:行内容,然后在Qt versions标签上可以看到您需要的相应完整库路径。就我而言,我看到/usr/local/Qt-5.4.1/

/usr/local/Qt-5.4.1/mkspecs/common/g++-base.conf文件中(您可能安装了 Qt 库的另一个路径),您可以将QMAKE_CXXFLAGS_CXX11QMAKE_CXXFLAGS_CXX14(如果有)变量更改为你想要(比如-std=gnu++1z)。

对于 clang ,路径在我的情况下变为/usr/local/Qt-5.4.1/mkspecs/common/clang.conf

对于其他一些目标/编制者,您可以关注Tools -> Options -> Build & Run -> Kits -> (select Kit you use) -> (look at 'Qt mkspec:' line at bottom),然后在/usr/local/Qt-5.4.1/mkspecs/*/qmake.conf(其中*Qt mkspec:行内容)和所有包含的{{1}中找到提交您需要的字符串*.confQMAKE_CXXFLAGS_CXX11。然后适当地改变它的值。

当然,您需要QMAKE_CXXFLAGS_CXX14CONFIG += c++11使用Jon Harper中提到的his answer