• Google代码规范工具Cpplint的使用


    Cpplint是一个python脚本,Google使用它作为自己的C++代码规范检查工具。

    假设你所在的公司也使用Google C++代码规范,那么你有必要了解下Cpplint。

            

             以下说一下Cpplint在windows下的简单使用:

    1.      从http://google-styleguide.googlecode.com/svn/trunk/cpplint/cpplint.py  下载cpplint.py源代码。并将其存放到D:softCpplintcpplint.py中;

    2.      从https://www.python.org/ 下载python-2.7.10.msi;

    3.      安装python,并将D:ProgramFilesPython27 加入到系统环境变量Path中;

    4.      写一个測试文件E:/tmp/test.cpp。内容例如以下:

    #include <iostream>
    
    using namespace std;
    
    int main()
    {
    	cout<<"hello !"<<endl;
    	
    	return 0;
    }
    5.      打开命令提示符,例如以下,会发现一共同拥有9个错误:


    6.      依照错误提示,对test.cpp文件进行改动,改动后的文件为test1.cpp。内容例如以下:

    /*
    # Copyright (c) 2015 Bingchun Feng. All rights reserved.
    */
    
    #include <iostream>
    
    int main() {
        std::cout << "hello !" << std::endl;
    
        return 0;
    }
    7.      运行。例如以下。发现所有错误所有清理掉了:


    8.      cpplint.py默认支持的文件格式包含(见cpplint.py文件第502行):.cc、.h、.cpp、.cu、.cuh,默认不支持.hpp文件,如test3.hpp,运行会报错:

    /*
    # Copyright (c) 2015 Bingchun Feng. All rights reserved.
    */
    #ifndef CPP_LINT_TEST_HPP_
    #define CPP_LINT_TEST_HPP_
    
    class A {
     public:
        int add(int a, int b);
        int mul(int a, int b);
    
     private:
        int m_a, m_b;
    }
    
    #endif  // CPP_LINT_TEST_HPP_
    


    9.      将cpplint.py文件第502行后改为以下就可以支持.hpp文件:

    _valid_extensions = set([‘cc’, ‘h’, ‘cpp’, ‘cu’, ‘cuh’, ‘hpp’])


    10.  其他相关选项说明:

    (1)、对于发现的每一个问题,cpplint都会给出一个位于区间[1, 5]之间的置信度评分,分数越高就代表问题越肯定,能够通过verbose选项控制输出哪些级别。例如以下。置信度评分为1、2的将不会再输出:

    E:	mp>python D:/soft/Cpplint/cpplint.py --verbose=3 test.cpp
    (2)、假设代码中有些部分不希望被检查,或者觉得是cpplint产生的误报。仅仅须要在对应代码行尾加入凝视”// NOLINT”就可以,cpplint就会跳过这些行。如:

    return 0; // NOLINT
    (3)、假设须要让cpplint支持其他文件扩展,又不想改动源代码。则能够通过extensions选项如:

    E:	mp>python D:/soft/Cpplint/cpplint.py --extensions=hpp test.cpp
    (4)、能够指定错误信息输出格式,支持两种格式,默认是emacs格式。还支持Visual Studio格式,能够通过output选项指定。如:

    E:	mp>python D:/soft/Cpplint/cpplint.py --output test.cpp 2>log.txt
    (5)、能够通过filter选项。依照自己的须要过滤掉特定的警告,”-FOO”表示不输出带有FOO的警告,”+FOO”表示输出带有FOO的警告,如:

    E:	mp>python D:/soft/Cpplint/cpplint.py --filter=-whitespace/tab,+whitespace/ending_newline  test.cpp
    (6)、能够通过counting选项。来显示每种Category有多少个错误,如:

     E:	mp>pythonD:/soft/Cpplint/cpplint.py --counting=detailed test.cpp
    (7)、能够通过linelength选项。来控制每行的最长长度,默认是80字符。假设同意每行最长长度为120,则为:

    E:	mp>python D:/soft/Cpplint/cpplint.py --linelength=120 test.cpp
    选项的更具体说明信息请參考cpplint.py。

  • 相关阅读:
    从程序员到技术总监,分享10年开发经验
    CF739E Gosha is hunting
    hdu 4891 模拟
    hdu4888 最大流(构造矩阵)
    hdu4888 最大流(构造矩阵)
    hdu4885 有 限制的最短路
    hdu4885 有 限制的最短路
    hdu4884 模拟
    hdu4884 模拟
    POJ1789简单小生成树
  • 原文地址:https://www.cnblogs.com/liguangsunls/p/7136467.html
Copyright © 2020-2023  润新知