欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

【window】cpplint在vscode中安装与使用

时间:2023-06-05
【window】cpplint在vscode中安装与使用 1.cpplint简介

Cpplint是一个Python脚本,作为一款开源免费的代码静态检测工具,Google也使用它作为自己的C++代码检测工具,也就是说,只要你想代码遵从Google
C++代码规范,那么Cpplint将会提供很好的代码静态检测支持。

如果写c/c++想要遵循良好的代码规范,又希望有工具提示自己是否遵循了规范,那cpplint肯定是一相对完美的答案。之所以说相对,毕竟静态代码检查工具肯定会有漏报,误报,但有一完整的开源代码规范加上一一对应的静态代码检测工具就已经是很不错的选择了

Google C++代码规范链接:https://zh-google-styleguide.readthedocs.io/en/latest/google-cpp-styleguide/contents/

2.cpplint安装 2.1 安装anaconda

window下安装anaconda可以参考:https://zhuanlan.zhihu.com/p/61639212

2.2 安装cpplint

打开cmd,输入命令:

pip install cpplint

注:很安装容易失败,解决方法,有梯子就挂梯子,没梯子改源
改清华镜像源:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/conda config --set show_channel_urls yes

2.3 vscode安装cpplint插件

参考下图

2.4 vscode配置cpplint插件

vscode配置cpplint路径,pip install安装后的文件在"anacondascripts"里面。关于自定义规则的一些想法:pip install安装的源文件来自:https://github.com/cpplint/cpplint,若要自定义规则应该可以通过修改源文件再本地安装来实现。

3、cpplint在vscode中的使用

源码:

#include #include"fun.h"int main(){ printf("fun return %dn", fun(1)); return 0;}

cpplint提示:

第1个警告可以参考《Google C++代码规范》中的 1.5、#include 的路径及顺序
第2个警告可以参考《Google C++代码规范》中的 9.4、函数声明与定义

修改后代码

#include #include"src/fun.h"int main() { printf("fun return %dn", fun(1)); return 0;}

如果第一调警告你觉得是误报,可以修改成

#include #include"fun.h" // NOLINTint main() { printf("fun return %dn", fun(1)); return 0;}

但如果要屏蔽一种类型的检测建议参考下面操作。

4、cpplint在vscode中的参数配置

首先可以先了解一些cpplint有哪些参数可以配置,这方面可以参考:https://cloud.tencent.com/developer/article/1494003

在vscode中可配置的参数可参考插件简介页面

这里尝试屏蔽"build/include_subdir"类型警告,先打开cpplint设置,选择Filters在settings.json中编辑

修改:

{ "cpplint.cpplintPath": "D:\Program Files (x86)\anaconda\scripts\cpplint.exe", "cpplint.filters": ["-build/include_subdir"]}

"build/include_subdir"类型警告便会被屏蔽(修改后警告可能不会刷新,重启vscode便可以验证是否屏蔽成功)。

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。