ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Google c++ coding Style Checker (cpplint)
    랭귀지/C\C++ 2020. 5. 6. 22:07

     

    Google Coding Style

    가독성을 높이기 위해 Google C++ coding Style Guide [ https://google.github.io/styleguide/cppguide.html ]

    따르기로 결정했다면 다음과 같은 툴의 도움을 받으면 적용하기 수월 해집니다.

     

     

    1. Visual Studio C++ 코딩 스타일 및 서식 설정

    들여 쓰기 및 중괄호 위치와 같은 많은 개별 코드 서식 지정 옵션을 지정할 수 있습니다. 이렇게 하려면 도구 > 옵션 > 텍스트 편집기 > C/C++ > 서식(또는 Ctrl + Q를 입력하고 "서식 지정"을 검색)으로 이동합니다. 또는 ClangFormat 스타일(또는 사용자 지정 ClangFormat 스타일) 중 하나를 지정할 수 있습니다.

     

    - 기본 Visual Studio 서식 스타일 ( 탭 띄어쓰기, 중괄호 위치, 빈공 백 조정 없음 ) 

    #include <iostream>
    
    int main()
    {
    	std::cout << "Hello Visual Studio C++ Style" << std::endl;
    	return 0;
    
    }

    - Google C++ Coding Style ( 스페이스 띄워쓰기, 중괄호, 빈공 백 조정  )

    #include <iostream>
    
    int main() {
      std::cout << "Hello Google C++ Style Guide" << std::endl;
      return 0;
    }

     

     

    2. Cpplint 를 활용한 Coding Style Check

    cpplint는 Google의 C++ Style guide에 따라 C/C++ 파일을 체크하는 커맨드 라인 도구라고 생각하면 됩니다.
    cpplint GitHub : https://github.com/cpplint/cpplint 

     

    cpplint/cpplint

    Static code checker for C++. Contribute to cpplint/cpplint development by creating an account on GitHub.

    github.com

     

    cpplint를 사용하기 위해 가이드대로 하려면 pip를 사용할 수 있어야 하는데 Visual Studio 기반으로 사용할 예정이라 Anaconda를 활용하여 Windows에 Python 환경을 설정한다.

    Windows 아나콘다 설치

    Anaconda : https://www.anaconda.com/download/

    1. 아나콘다 다운로드 페이지로 가서 다운로드 버튼을 클릭합니다.

    pip install cpplint

     

    설치가 완료되면 커맨드로 쉽게 사용이 가능하다.

    cpplint --help
    cpplint [OPTIONS] filename
    #include <iostream>
    
    int main()
    {
    	std::cout << "Hello Visual Studio C++ Style" << std::endl;
    	return 0;
    
    }

    해당 소스를 검사했을 때 다음과 같은 메시지를 확인할 수 있다.

    main.cpp:0:  No copyright message found.  You should have a line: "Copyright [year] <Copyright Owner>"  [legal/copyright] [5]
    main.cpp:4:  { should almost always be at the end of the previous line  [whitespace/braces] [4]
    main.cpp:5:  Tab found; better to use spaces  [whitespace/tab] [1]
    main.cpp:5:  Missing spaces around <<  [whitespace/operators] [3]
    main.cpp:6:  Tab found; better to use spaces  [whitespace/tab] [1]
    main.cpp:7:  Could not find a newline character at the end of the file.  [whitespace/ending_newline] [5]
    Done processing main.cpp
    Total errors found: 6

    수정 후 소스 코드 

    // Copyright 2020 Angler.
    
    #include <iostream>
    
    int main() {
      std::cout << "Hello Google C++ Style Guide" << std::endl;
      return 0;
    }
    
     cpplint main.cpp
     Done processing main.cpp

     

    3. Visual Studio 외부 도구 설정을 통한 Cpplint 사용

    윈도에서 Anaconda로 cpplint를 설치했을 때 cpplint는 python code 뿐만 아니라 exe 실행 파일을 script 폴더에 생성하게 된다. cpplint.exe 파일을 Visual Studio 외부 도구로 설정하여 좀 더 간편하게 사용할 수 있도록 합니다.

    [도구]-[외부 도구] 선택

    제목 : cpplint
    명령 : C:\python\Scripts\cpplint.exe
    인수 : --output=vs7 --extensions=h,hpp,c,cpp $(ItemPath)
    초기 디렉토리 : $(ItemDir)

     

    VS의 메뉴에서 [도구]-[cpplint]를 선택하여 cpplint가 코드를 분석하도록 합니다.

     

    댓글

Designed by Tistory.