使用CMake在Qt Creator 4.0 Clang Static Analyzer中启用C ++ 14

时间:2016-12-15 10:35:12

标签: cmake clang qt-creator c++14 clang-static-analyzer

我在项目中使用Clang 3.8的一些C ++ 14特性。构建系统是CMake,所以我像这样运行clang静态分析:

$ scan-build cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_COMPILER=clang \
/path/to/source
$ scan-build make

这种方式构建和分析工作非常好,但我也希望通过GUI集成从Qt Creator中使用它。当我按分析 - > Clang Static Analyzer ,clang在第一个文件上停止使用C ++ 14功能,其中包含非零错误代码和错误,如:

error: <a_cool_c++14_feature> is a C++14 extension

我添加了

set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED TRUE)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED TRUE)

到我最顶层的CMakeLists.txt,但它没有用。我还试图为所有目标设置CXX_STANDARD set_property命令,但我在Qt Creator中得到了相同的结果,而从控制台手动构建效果很好。

如何在Qt Creator GUI的Clang Static Analyzer中使用C ++ 14?

2 个答案:

答案 0 :(得分:3)

尝试在选项&gt;中添加-std=c++14 C ++&gt;代码模型。

我是这样的:

-Weverything -Wno-c++98-compat -Wno-c++98-compat-pedantic -Wno-unused-macros -Wno-newline-eof -Wno-exit-time-destructors -Wno-global-constructors -Wno-gnu-zero-variadic-macro-arguments -Wno-documentation -Wno-shadow -Wno-missing-prototypes -Wsuggest-override -std=c++14

注意: 您必须重新打开每个文件才能使其生效。 如果您无法编辑它,则必须首先启用插件“代码模型”(帮助&gt;关于插件...)并重新启动QtCreator

答案 1 :(得分:2)

帮助我的是CMakeLists.txt

中的以下行
set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 14)