我有一个包含C++14部件的qt项目。
最近,我改变了我的ubuntu发行版。现在我有了16.04LTS,我安装了QtCreative4.02(建于6月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但行为是一样的。
有人能给点线索吗?
发布于 2016-07-10 16:20:24
而不是:
CONFIG += -std=c++14使用:
CONFIG += c++14发布于 2016-07-11 14:42:06
你可以从根本上解决它。通过更改配置文件。
首先,您需要在项目中使用的库路径。您可以确定查看项目面板(Ctrl + 5)并在(Build|Run)按钮上记住"Kit“名称的路径,然后按照Tools -> Options -> Build & Run -> Kits,选择以前记得的"Kit”,然后可以看到Qt version:行内容,然后在Qt versions选项卡上看到相应的完整库路径。在我的例子中,我看到了/usr/local/Qt-5.4.1/。
在/usr/local/Qt-5.4.1/mkspecs/common/g++-base.conf文件中(安装了Qt库的另一条路径),您可以将QMAKE_CXXFLAGS_CXX11或QMAKE_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:行内容)和所有包含的*.conf文件中找到您需要的字符串QMAKE_CXXFLAGS_CXX11或QMAKE_CXXFLAGS_CXX14。然后适当地更改其值。
当然,您需要使用CONFIG += c++11或CONFIG += c++14,就像Jon Harper在his answer中提到的那样。
https://stackoverflow.com/questions/38293708
复制相似问题