【问题标题】:Enable C++14 in Qt Creator 4.0 Clang Static Analyzer using CMake使用 CMake 在 Qt Creator 4.0 Clang 静态分析器中启用 C++14
【发布时间】:2017-04-30 22:17:03
【问题描述】:

我在我的项目中使用了 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 中使用它。当我按 Analyze -> 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_STANDARDset_property 命令,但我在Qt Creator 中得到了相同的结果,而从控制台手动构建效果很好。

如何在 Qt Creator GUI 的 Clang 静态分析器中使用 C++14?

【问题讨论】:

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


【解决方案1】:

尝试在选项 > C++ > 代码模型中添加-std=c++14

我的是这样的:

-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

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

【讨论】:

    【解决方案2】:

    帮助我的是CMakeLists.txt中的以下行

    set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 14)
    

    【讨论】:

      猜你喜欢
      • 2016-12-24
      • 1970-01-01
      • 2010-11-24
      • 2016-12-05
      • 2016-11-17
      • 1970-01-01
      • 2017-03-20
      • 1970-01-01
      • 2015-12-03
      相关资源
      最近更新 更多