我在项目中使用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?
答案 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)