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/5d/v3/mnhkM6cfRAyOQ3cliNKp4g/zh-cn_image_0000002594474760.png?HW-CC-KV=V1&HW-CC-Date=20260709T132902Z&HW-CC-Expire=86400&HW-CC-Sign=4C985CE6A8E4D364C9A7165950512D78F28A5A33E5A52B8F1EC0FFE3D3F9BE78)
    
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/d4/v3/2spS_Nv-STGAGLwOCh8egg/zh-cn_image_0000002594634684.png?HW-CC-KV=V1&HW-CC-Date=20260709T132902Z&HW-CC-Expire=86400&HW-CC-Sign=CA4CCAC8E960ABF9CCB6426820BAF6A57755263C24E6F1E9373E0F7D570B5E98)按钮展开规则填写框，在不同行添加规则。添加完成后点击![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/d4/v3/X4UX7ahnRVCuSd9IDlx1TA/zh-cn_image_0000002625074267.png?HW-CC-KV=V1&HW-CC-Date=20260709T132902Z&HW-CC-Expire=86400&HW-CC-Sign=004B7213E2055F8DCB374A22C69F3B8C0861D3C6FE978B0585E3590E0E49AB98)按钮，多条规则会自动用英文逗号隔开。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/9c/v3/mM2Uv2cuSnmtv0hVuYMhEg/zh-cn_image_0000002625074271.png?HW-CC-KV=V1&HW-CC-Date=20260709T132902Z&HW-CC-Expire=86400&HW-CC-Sign=E8F84580E5D6524109B53A32E2A5EC7BDB572B7E957C8E391103AEA0B36623B3)
    

#### \[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/76/v3/LiZvqDrSTeywQbpHEtEBbg/zh-cn_image_0000002594634690.png?HW-CC-KV=V1&HW-CC-Date=20260709T132902Z&HW-CC-Expire=86400&HW-CC-Sign=01802D9737CA7451774DB23727074C2DF82CC6C2A74DB64F122C2FF859E7064F)
    

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

1.  通过如下两种方法进入Inspect Code。
    
    *   在工程目录顶部或工程目录中任意文件，单击鼠标右键选择**Inspect Code**...。
    *   在菜单栏点击**Code >** **Inspect Code**...。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/b6/v3/swhc6ZwPRa6ue8ccQ8EkKw/zh-cn_image_0000002625074265.png?HW-CC-KV=V1&HW-CC-Date=20260709T132902Z&HW-CC-Expire=86400&HW-CC-Sign=8CD84EE3ECD54C3B2EB34EFD2636BBB9DB3B7D805E9BFFBBC537929C04667436)
    
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/cc/v3/bOmaowQST32oElIzkNNU4w/zh-cn_image_0000002624994123.png?HW-CC-KV=V1&HW-CC-Date=20260709T132902Z&HW-CC-Expire=86400&HW-CC-Sign=62785218261777B74FBB78D98BE27AC90E2050594252D95657B188FEBB8D5622)按钮展开规则填写框，在不同行添加规则。添加完成后点击![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/23/v3/XONpEk7VR0yBFpUYVn8EFQ/zh-cn_image_0000002594474768.png?HW-CC-KV=V1&HW-CC-Date=20260709T132902Z&HW-CC-Expire=86400&HW-CC-Sign=3574D69DD33D67FCFAD807E006D8F951269A3C12A81729036616A2518B9BD484)按钮，多条规则会自动用英文逗号隔开。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/d8/v3/ZzES8qF7QFW6WcAibIz3iA/zh-cn_image_0000002594474764.png?HW-CC-KV=V1&HW-CC-Date=20260709T132902Z&HW-CC-Expire=86400&HW-CC-Sign=A0ACBF979B695E92B5B3DEA7F500F174B3CCE48AC593EA7F09239FC278B0665E)
    

#### 通过内置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/76/v3/-LCoEQRuThSI2VqLFlfSqQ/zh-cn_image_0000002594634682.png?HW-CC-KV=V1&HW-CC-Date=20260709T132902Z&HW-CC-Expire=86400&HW-CC-Sign=0582D530BCFC8D30FC824E3C5D091E3415E0D4675FEBF8C01F39D691E9D53114)

**操作步骤**

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

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

**生效规则**

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

**操作步骤**

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

#### 通过自定义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/1b/v3/Z4Hj78CNSGmVvrEXcjGaag/zh-cn_image_0000002594634688.png?HW-CC-KV=V1&HW-CC-Date=20260709T132902Z&HW-CC-Expire=86400&HW-CC-Sign=2AFE5421A19D02685099FF7C85DD081AFAF168EFFF6231D5292827D717E69228)
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/b3/v3/hgFXXFvVTnCsGxIeF00Cww/note_3.0-zh-cn.png?HW-CC-KV=V1&HW-CC-Date=20260709T132902Z&HW-CC-Expire=86400&HW-CC-Sign=F2ADC55131546EEE070F47D08E38B6DE0E47D5FEB2BB9C3631E65301928C832D)
    
    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/6b/v3/HQwdWiXXRBeAln5aKRvUnQ/zh-cn_image_0000002594474762.png?HW-CC-KV=V1&HW-CC-Date=20260709T132902Z&HW-CC-Expire=86400&HW-CC-Sign=569EF5232B71E24D326BA02DC735A7E87B4F3306B2B24DAEF62EAF187CACAF64)