带有 Clang 的 QtCreator 中的 C++14 支持
C++14 support in QtCreator with Clang
如何使用 Clang 3.5 在 QtCreator 3.3 中启用 C++14 支持?我添加了一个 Clang 工具包,并在我的项目文件中添加了 CONFIG += c++14
。但是,当使用例如return type deduction 我收到以下错误:
error: 'auto' return without trailing return type; deduced return types are a C++1y extension
我不得不转到构建文件夹中的 Makefile 并手动将 -std=c++11
替换为 -std=c++14
。
幸运的是,当您将套件添加到项目时,Makefile 只编写一次。我只需要这样做一次,并且可以根据需要在 QtCreator 中多次构建。
所以现在我可以使用 Clang 工具包来使用所有新的 c++14 功能。作为奖励,如果我在 Makefile 中手动设置 -std=c++1z
,我还可以使用所有 c++17 功能。甜!
您可以在 .pro
文件中使用 CONFIG += c++14
和 Qt5.5
但是clang有一个bug,所以我们需要修改Qt/5.5/clang_64/mkspecs/features/c++14.prf
文件,
在 include(c++11.prf)
之前添加此代码:
contains(QMAKE_LFLAGS_CXX11, -stdlib=libc++) {
QMAKE_CXXFLAGS_CXX11 += -stdlib=libc++
}
如何使用 Clang 3.5 在 QtCreator 3.3 中启用 C++14 支持?我添加了一个 Clang 工具包,并在我的项目文件中添加了 CONFIG += c++14
。但是,当使用例如return type deduction 我收到以下错误:
error: 'auto' return without trailing return type; deduced return types are a C++1y extension
我不得不转到构建文件夹中的 Makefile 并手动将 -std=c++11
替换为 -std=c++14
。
幸运的是,当您将套件添加到项目时,Makefile 只编写一次。我只需要这样做一次,并且可以根据需要在 QtCreator 中多次构建。
所以现在我可以使用 Clang 工具包来使用所有新的 c++14 功能。作为奖励,如果我在 Makefile 中手动设置 -std=c++1z
,我还可以使用所有 c++17 功能。甜!
您可以在 .pro
文件中使用 CONFIG += c++14
和 Qt5.5
但是clang有一个bug,所以我们需要修改Qt/5.5/clang_64/mkspecs/features/c++14.prf
文件,
在 include(c++11.prf)
之前添加此代码:
contains(QMAKE_LFLAGS_CXX11, -stdlib=libc++) {
QMAKE_CXXFLAGS_CXX11 += -stdlib=libc++
}