彩票走势图

如何在Visual Studio中使用clang-tidy进行代码分析

转帖|使用教程|编辑:陈津勇|2019-10-21 14:05:22.067|阅读 1918 次

概述:转眼间2019年即将过去,VS在Microsoft的老伙计们几十年如一日的优化完善下也更新到v16.4了,新版本的功能你熟悉了吗?

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

VS2019 v16.4 Preview 1中,微软开发团队为C++代码分析功能带来了重量级更新,其中包括:clang-tidy原生支持。这里所说的clang-tidy,实际上是LLVM团队开发的一个基于Clang的“linter”工具。它带来了多项代码改进:语言的现代化及标准符合性、静态分析和自动格式化等。

点击下载Visual Studio正式版

安装Clang工具

为了在Visual Studio中运行clang-tidy,我们首先需要在系统中安装Clang工具。在安装或修改Visual Studio时,在“C++桌面开发”工作集中选择“C++ Clang tools for Windows”即可安装Clang工具,如下图所示:

配置clang-tidy

默认情况下,代码分析工具和你所使用的平台工具集和编译器有关。例如,如果你使用MSVC(Visual Studio 2019),则将使用Microsoft Code Analysis作为代码分析工具,如果使用LLVM/clang-cl编译器,则会使用clang-tidy。

在编写代码的过程中,代码分析工具将在后台运行,其作用范围仅限编辑器中已经打开的文档。默认情况下,它将不会在编译期作用在所有的源文件上。这点需要注意。

MSBuild工程

开发团队对工程属性中的[代码分析]节点进行了重新设计。在新版本中,你可以更加简单的配置每个工程使用的工具。在[常规]选择卡下,你可以选择当执行代码分析时,具体使用哪一个工具。如下图所示:

在[Microsoft]结点下,你可以配置MSVC代码分析引擎的规则集合。类似的,你也可以在[Clang-Tidy]选项卡下指定要检查的clang-tidy检查项目。

可以通过修改.clang-tidy文件来做更进一步的配置,工具将会尝试读取这个文件中的配置值。你可以在这个文件中指定更多的更加细节化的配置项。例如Checks、 HeaderFilterRegex和SystemHeaders等。

CMake工程

在以Windows为目标平台的CMake配置中,你可以通过在CMakeSettings.json文件中指定”clangTidyChecks”关键字的值来做自定义检查。从Preview 2开始,我们也可以配置enableMicrosoftCodeAnalysis和enableClangTidyCodeAnalysis来指定哪一个工具可用。如下图所示:

当前并不支持通过在IDE的CMakeLists.txt文件中指定CMAKE__CLANG_TIDY变量来进行配置。另外,CMake中的Clang-Tidy支持仅Windows目标平台,也就是说,目前还不支持WSL或者远程Linux主机作为目标平台。

代码分析可以在以下路径中做进一步的配置:Tools > Options > Text Editor > C/C++ > Advanced.

错误列表和编辑器集成

执行clang-tidy代码分析的结果将会在VS的错误列表中以警告的方式来呈现,类似于编译错误一样,你可以点击警告项目进行代码导航。在[分类]这一列中,你可以获取有关当前警告所属的检查类别,例如:cppcoreguidelines, readability, or clang-diagnostic。

静态分析的检查警告,也会以波浪线形式呈现在你的编辑器中。这样在编辑代码的时候,就可以容易地发现当前编写代码的错误和上下文,便于快速改正。

下一步工作

当前VS的UI并不能支持指定Visual Studuio使用一个自定义的clang-tidy.exe。这个特性在一些场景下比较常用。例如,如果你想自定义一套自己的检查规则,微软会评估这个特性并考虑是否将它作为一个选项来提供。另外,微软还在开发一些其他特性,例如可以在执行clang-tidy时指定–fix选项,这样你就可以在检查代码的同时,快速进行修正。

*想要获得 Visual Studio 更多资源或正版授权的朋友,可以咨询了解哦~



慧都网·1024程序员节DevExpressMyEclipseAxure RPAsposeFastReport等产品限时放“价”,给你专属宠爱!点击下方图片查看活动详情↓↓↓

QQ截图20191008171313.png


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP