1、认识cpplint
cpplint是Google开发的一个C++代码风格检查工具,如果是遵循google code style的,可以使用cpplint作为代码规范的一个检查工具。
Cpplint是一个开源可下载的脚本,具体可以在github上下载:
https://github.com/google/styleguide/blob/gh-pages/cpplint/cpplint.py
cpplint是一个使用python2.X版本写的脚本,所以执行的时候只能在安装python2.X版本上面,建议安装python2.7,如果有喜欢3.X版本的爱好者,也可以尝试修改脚本中的部分语法以让它支持3.X,具体修改方法可以在网上查找
cpplint对于本人来说还是有不同的意义的,本人由cpplint入python脚本的坑,所以也比较依赖python2.X版本
Google C++ 风格指南 - 中文版:http://blog.csdn.net/shendl/article/details/6762538
在命令行中(cmd)中执行:python cpplint.py -- help可以查看cpplint的帮助说明。注:命令行参数都是两个横线(--)
或直接打开py脚本,开头一部分也是help的内容
2、cpplint一些常用的参数
[--verbose=#]:指定输出的错误级别
对于发现的每个问题,cpplint都会给出一个位于区间[1, 5]之间的置信度评分,分数越高就代表问题越肯定,可以通过verbose选项控制输出哪些级别,如下,置信度评分为1、2的将不会再输出:
E:\CM\cpplint>python E:\CM\cpplint\cpplint.py --verbose=3 test.cpp
[--output=vs7]:cpplint的输出格式有emacs和vs7两种, 默认是emacs,vs7是Visual Studio输出的兼容格式
[--filter=-x,+y,...]:指定输出错误类型,-表示不输出,+表示输出(错误类型可以查看脚本中的_ERROR_CATEGORIES 定义的对应的列表)
例子:--filter=-build,-whitespace,+whitespace/comma
-whitespace,所有的[whitespace*]都将不输出,但是有了+whitespace/comma,则[whitespace/comma]类型的错误将被输出
[--linelength=digits]:控制每行的最长长度,google cpplint默认是80字符
[--headers=x,y,...]:扩展检查的文件的后缀
[--counting=total|toplevel|detailed]:输出错误总数的方式,默认为total参数
例子:
--counting=total
输出:
Total errors found: 96
--counting=toplevel
输出:
Category 'whitespace' errors found: 88
Category 'build' errors found: 8
Total errors found: 96
--counting=detailed
输出:
Category 'whitespace/braces' errors found: 28
Category 'whitespace/semicolon' errors found: 1
Total errors found: 29
3、使用脚本中遇到的一些问题
1、有一行代码,算了下并没有超过80个字符,但是cpplint检查的时候,报错: [WARN] Lines should be <= 80 characters long [whitespace/line_length]
a 、代码行后面带有注释,注释会计入字符数
2、行字符没超过80,但是整个文件都在报行字符超过80
原因目前遇到两种:
a、结尾符只有CR没有LF,导致计算字符有问题(linux下面是只有LF,不会有问题),将文件格式化一下
b、文件格式有问题,是奇奇怪怪的ucs之类的,一般是vs自己生成的文件,导致整个文件都在报80行字符的问题,将文件格式转换成UTF8/GB2312就可以了