Clang-Tidy代码检查
==============

DevEco Studio支持通过内置的Clang-Tidy和自定义的Clang-Tidy对C/C++代码进行静态检查，以及支持配置检查规则，帮助开发者快速发现C++编码的问题。

#### 检查规则配置

当前支持通过三种方式配置检查规则。

#### \[h2\]方式一：在Clang-Tidy Checks中配置

1.  在菜单栏进入**File > Settings...**（macOS系统为**DevEco Studio > Preferences/Settings...**）> **Languages & Frameworks** > **C/C++**，勾选**Use clang-tidy via clangd to enable the following checks**选项。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/0d/v3/9vdTPUKwT924NQa8RlMQGw/zh-cn_image_0000002594474760.png?HW-CC-KV=V1&HW-CC-Date=20260612T073853Z&HW-CC-Expire=86400&HW-CC-Sign=BB5D8F43C6D3DFA11513027F6337D09C436F3E7BF7C75CEB39ADFBD85C080A74)
    
2.  在选项下方添加检查规则，多条规则用英文逗号隔开，检查规则具体请参考[Clang-Tidy Checks网站](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/list.html)。
    
    添加检查规则时，可点击![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/0c/v3/gea4QddtSS6wobqRnglG8g/zh-cn_image_0000002594634684.png?HW-CC-KV=V1&HW-CC-Date=20260612T073853Z&HW-CC-Expire=86400&HW-CC-Sign=4957F10FF814EAFE6AC88B145EB0BB82316F4E1A8A926DD6CCDA2499B6A539FB)按钮展开规则填写框，在不同行添加规则。添加完成后点击![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/46/v3/lsksoavrSZ-CGlsznZ38bQ/zh-cn_image_0000002625074267.png?HW-CC-KV=V1&HW-CC-Date=20260612T073853Z&HW-CC-Expire=86400&HW-CC-Sign=76877BD64259309C712DA69AC972C896C71141151CDE2EB66E4FAED0E8D5D148)按钮，多条规则会自动用英文逗号隔开。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/92/v3/ptec5tC1QIOHY0nTdn_r9Q/zh-cn_image_0000002625074271.png?HW-CC-KV=V1&HW-CC-Date=20260612T073853Z&HW-CC-Expire=86400&HW-CC-Sign=3D7187E7AB88F8DC26021C97B8CE75B13EF8808518F94C40F9F785B4108C7D30)
    

#### \[h2\]方式二：在 .clang-tidy文件中配置

1.  在工程根目录中或在编辑器中搜索找到并打开 .clang-tidy文件。
2.  在**Checks**字段中添加检查规则，多条规则使用英文逗号隔开，检查规则具体请参考[Clang-Tidy Checks网站](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/list.html)。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/8b/v3/kA_iTYztSQyc7uc9Ykk9Gw/zh-cn_image_0000002594634690.png?HW-CC-KV=V1&HW-CC-Date=20260612T073853Z&HW-CC-Expire=86400&HW-CC-Sign=B8BA1F5021901F05AEE06D0B378B3455A6485382A9C611DA217D056901658A9E)
    

#### \[h2\]方式三：在Inspection-checks中配置

1.  通过如下两种方法进入Inspect Code。
    
    *   在工程目录顶部或工程目录中任意文件，单击鼠标右键选择**Inspect Code**...。
    *   在菜单栏点击**Code >** **Inspect Code**...。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/81/v3/dhc3PB39QAKX7Mgzu3W76g/zh-cn_image_0000002625074265.png?HW-CC-KV=V1&HW-CC-Date=20260612T073853Z&HW-CC-Expire=86400&HW-CC-Sign=241107EC87041E41BFE7B0F16DC8EF128EB80297987796B466F5C879A31CCF19)
    
2.  点击**Configure...** **\> CPP > clang-tidy**，在**checks**中添加检查规则，多条规则使用英文逗号隔开，检查规则具体请参考[Clang-Tidy Checks网站](https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/checks/list.html)。
    
    添加检查规则时，可点击![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/69/v3/DzLFnS1FSheZhp5BF-ZHlw/zh-cn_image_0000002624994123.png?HW-CC-KV=V1&HW-CC-Date=20260612T073853Z&HW-CC-Expire=86400&HW-CC-Sign=3DB413D68E711C1C10CB42B8B6879B2B2A04A6C35148E9FBEE9D7A481A7128EB)按钮展开规则填写框，在不同行添加规则。添加完成后点击![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/d5/v3/bah-lNaWT5m8kzKSTKt4hg/zh-cn_image_0000002594474768.png?HW-CC-KV=V1&HW-CC-Date=20260612T073853Z&HW-CC-Expire=86400&HW-CC-Sign=A136E3B073B7B58120AC33AE996D5FAC78F3CB5A4DC059A453AC8DFB60AC14F4)按钮，多条规则会自动用英文逗号隔开。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/12/v3/wdQdbdWFQhuZmNKrENYPjg/zh-cn_image_0000002594474764.png?HW-CC-KV=V1&HW-CC-Date=20260612T073853Z&HW-CC-Expire=86400&HW-CC-Sign=55D2F2975B61AEBA8D82DBFEF29E7A1A2074FD2D94BEA933AFDBE4BB73475B3C)
    

#### 通过内置Clang-Tidy检查代码

使用内置Clang-Tidy进行代码自动实时检查和手动检查。

#### \[h2\]自动实时检查

**生效规则**

若勾选了**live update****（show in “Current File”）**，自动实时检查时，[Clang-Tidy Checks](#section386618116187)、[.clang-tidy文件](#section158716295189)和[Inspection-checks中](#section841663417181)配置的规则均生效；若不勾选**live update****（show in “Current File”）**，自动实时检查时，[Clang-Tidy Checks](#section386618116187)和 [.clang-tidy文件](#section158716295189)中配置的规则生效。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/f9/v3/F6ERA9FYRHyPp0tLQpfFtA/zh-cn_image_0000002594634682.png?HW-CC-KV=V1&HW-CC-Date=20260612T073853Z&HW-CC-Expire=86400&HW-CC-Sign=F75322D4B3BAE90FF536511F4EC435197E30451EEE0FB19B7EC5463777CA4109)

**操作步骤**

代码编辑时，工具自动提示语法错误等，将鼠标放置在错误代码处会显示详细的错误信息。

#### \[h2\]手动检查

**生效规则**

手动检查时，仅[Inspection-checks中配置的规则](#section841663417181)生效。

**操作步骤**

1.  通过如下两种方法，进入手动检查入口。
    
    *   在工程目录顶部或工程目录中任意文件，单击鼠标右键选择**Inspect Code**...。
    *   在菜单栏点击**Code >** **Inspect Code**...。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/8b/v3/KlQndPFJRcav2H_lVrB2iQ/zh-cn_image_0000002594634686.png?HW-CC-KV=V1&HW-CC-Date=20260612T073853Z&HW-CC-Expire=86400&HW-CC-Sign=E125653080F75AC421DF38434CFCE1729FA1AEA5FAFB56D76117063B7BCBA484)
    
2.  指定检查范围，如整个工程、某个模块或者具体文件，单击**Analyze**按钮执行代码检查。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/a3/v3/bxSbMapbS_KUwFbfsKf-AQ/zh-cn_image_0000002594474758.png?HW-CC-KV=V1&HW-CC-Date=20260612T073853Z&HW-CC-Expire=86400&HW-CC-Sign=E0196A01EACA1ED5AFF497D52E93ED2E507AC5D7B44B20D8F01DABB0E7272FD9)
    
3.  检查完成后在界面左下方可查看告警文件和告警信息，点击告警信息可跳转至具体代码位置，开发者可在界面右下方代码区和上方代码区编辑修改。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/74/v3/watwXZuoRfurQTCAzRXPHQ/zh-cn_image_0000002594474766.png?HW-CC-KV=V1&HW-CC-Date=20260612T073853Z&HW-CC-Expire=86400&HW-CC-Sign=D150A6E4692299E2E8FA818136DC49ECD1AD22CFDA8010FADD96BB82A105F61B)
    

#### 通过自定义Clang-Tidy检查代码

从26.0.0 Beta1版本开始，支持使用自定义Clang-Tidy进行代码自动实时检查和手动检查。

**生效规则**

1.  勾选Prefer .clang-tidy files over IDE settings时，自动实时检查和手动检查时，[.clang-tidy文件中配置的规则](#section158716295189)生效。
2.  不勾选Prefer .clang-tidy files over IDE settings时，自动实时检查和手动检查时，[Inspection-checks中配置的规则](#section841663417181)生效。

**操作步骤**

1.  在菜单栏进入**File > Settings...**（macOS系统为**DevEco Studio > Preferences/Settings...**）> **Languages & Frameworks** > **C/C++**，勾选**Use external Clang-Tidy instead of the build-in one**，添加clang-tidy.exe程序文件。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/b8/v3/sgHis1kKSbuhio-j6QnZ8Q/zh-cn_image_0000002594634688.png?HW-CC-KV=V1&HW-CC-Date=20260612T073853Z&HW-CC-Expire=86400&HW-CC-Sign=8077168F164052B9E13412298B489B22203E459FF00C9EC56CE334D26FDB2445)
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/3f/v3/Qa8gX-TKR6Kd8uJsVT77NA/note_3.0-zh-cn.png?HW-CC-KV=V1&HW-CC-Date=20260612T073853Z&HW-CC-Expire=86400&HW-CC-Sign=FC81115BC1B5AAD369FDEAAEB10812F67D3D5A3113D1BC5C8B0EAD5679A9037D)
    
    clang-tidy.exe可从DevEco Studio安装目录中获取。
    
2.  选择生效规则和开启实时检查。
    
    *   进入clang-tidy界面，若勾选**Prefer .clang-tidy files over IDE settings**， [.clang-tidy文件中配置的规则](#section158716295189)生效；若不勾选**Prefer .clang-tidy files over IDE settings**，[Inspection-checks中配置的规则](#section841663417181)生效。
    *   若勾选**live update（show in “Current File”）**，会开启自动实时检查；若不勾选，需要手动检查，手动检查操作具体请参考[内置Clang-Tidy的手动检查](#section1395112325376)。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/b0/v3/kn19UkFwQC2h9mugBKiOPQ/zh-cn_image_0000002594474762.png?HW-CC-KV=V1&HW-CC-Date=20260612T073853Z&HW-CC-Expire=86400&HW-CC-Sign=A63D5E7174488B09E8F1E2FCC839A52BA30C2317BCE81E6FAD590C28E28356D8)