c++代码静态检查工具——cpplint使用技巧

cpplint使用技巧

google c++ 编码规范    (中文 )

李开复微博爆谷歌公开 C++编码规范 称全球最好, 开复认证,值得信赖@@@


这篇文档确实值得去细看,不过条条框框太多,不强制,执行起来有困难.

幸好文章有提到一个好工具:cpplint .这个工具非常之好用, 具体的教程网上搜,有一大堆.

如果你试用过,你会发现它能检查出一大堆的风格问题,如果你只有1个显示器,你修改一个错误的过程将会是如下:

1.查看错误行号

2.用vim打开文件,找到对应的文件位置,根据需要修改.

3.保存文件,退出vim.

4.查看下一个错误行号,如此反复.

这个过程实在是不方便.

 

所以,我修改了一下这个调用接口.直接把错误信息当成注释 一次放入 源文件中,然后只需要打开一次源文件,依次修改.

修改完成之后,再调用清理注释接口,删除之前插入的内容.整个过程一气呵成!


只用简单的几行脚本:

#!/bin/bash
#
# add the error info to source file from cpplint.py
# after file is modified, clean the error info
#       [email protected]
#
if [ "$1" == "-h"  -o $# -eq 0 ];then
        echo "Clean comment: cpplint -c file1 file2 ..."
        echo "  Gen comment: cpplint file1 file2 ..."
        exit 1
fi

# clean the comment
if [[ "$1" == "-c" ]];then
        shift 1
        for file in $(ls $@);do
                sed -i "/CPPLINT/d" ${file}
        done
        exit 1
fi

# generate the comment
for file in $(ls $@);do
        cp ${file} ${file}.bak  # backup the original file for safety

        cpplint.py   ${file}  2> tmp
        cat tmp | grep "^${file}" |grep -v "copyright message found" \
                | awk 'BEGIN{FS=":";OFS=":"}{print $2,$3}' | sort -t\: -n -k1  >${file}.lint

        IFS=':'
        num=0
        while read line_no comment; do
                sed -i "$((num+line_no)) i\
                        // [CPPLINT] ${comment}"  ${file}

                num=$((num+1))
        done < ${file}.lint
done

rm -f tmp ${file}.lint

文章来源:http://just-study.blogbus.com/logs/108437201.html

你可能感兴趣的:(C++)