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:\soft\Cpplint\cpplint.py中;

2.      從https://www.python.org/ 下載python-2.7.10.msi;

3.      安裝python,並將D:\ProgramFiles\Python27 加入到系統環境變量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:\tmp>python D:/soft/Cpplint/cpplint.py --verbose=3 test.cpp
(2)、假設代碼中有些部分不希望被檢查,或者覺得是cpplint產生的誤報。僅僅須要在對應代碼行尾加入凝視”// NOLINT”就可以,cpplint就會跳過這些行。如:

return 0; // NOLINT
(3)、假設須要讓cpplint支持其他文件擴展,又不想改動源代碼。則能夠通過extensions選項如:

E:\tmp>python D:/soft/Cpplint/cpplint.py --extensions=hpp test.cpp
(4)、能夠指定錯誤信息輸出格式,支持兩種格式,默認是emacs格式。還支持Visual Studio格式,能夠通過output選項指定。如:

E:\tmp>python D:/soft/Cpplint/cpplint.py --output test.cpp 2>log.txt
(5)、能夠通過filter選項。依照自己的須要過濾掉特定的警告,”-FOO”表示不輸出帶有FOO的警告,”+FOO”表示輸出帶有FOO的警告,如:

E:\tmp>python D:/soft/Cpplint/cpplint.py --filter=-whitespace/tab,+whitespace/ending_newline  test.cpp
(6)、能夠通過counting選項。來顯示每種Category有多少個錯誤,如:

 E:\tmp>pythonD:/soft/Cpplint/cpplint.py --counting=detailed test.cpp
(7)、能夠通過linelength選項。來控制每行的最長長度,默認是80字符。假設同意每行最長長度為120,則為:

E:\tmp>python D:/soft/Cpplint/cpplint.py --linelength=120 test.cpp
選項的更具體說明信息請參考cpplint.py。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM