.|————doc (说明文档及过程文件)||————exe (打包好的可执行程序)||————git_hook (嵌入git的钩子文件)||————.scripts (特殊用法的脚本)||____lint.py (cpplint修改版)嵌入git,在提交阶段进行检查
将git_hook中的文件放在自己项目的.git/hooks路径下,下次提交时便会触发代码检查

使用cppcheck上位机解析lint检查的结果

独立使用,基于特定的文件或文件夹
将.scripts中的脚本lint_folder.sh和format_cpplint.sh放在要检查的目录同一级即可

嵌入jenkins进行自动化构建检查
./lint.exe --helpSyntax: lint [--verbose=#] [--output=vs7] [--filter=-x,+y,...] [--counting=total|toplevel|detailed] [--root=subdir] [--linelength=digits] [--headers=x,y,...] [--quiet][--help][--useage][--generate][--about] <file> [file] ... Option: output=vs7 output is formate: 'emacs', 'vs7', 'eclipse' verbose=# output level: 0-5, message less than [verbose] will not be printed quiet Don't print anything if no errors are found filter=-x,+y,... To see a list of all the categories used in cpplint, pass no arg: --filter= Examples: --filter=-whitespace,+whitespace/braces --filter=whitespace,runtime/printf,+runtime/printf_format --filter=-,+build/include_what_you_use counting=total Error statistics style. The total number of errors found is always printed total => Total errors found: toplevel => Category 'whitespace' errors found: detailed => Category 'whitespace/parens' errors found: root=subdir The root directory used for deriving header guard CPP variable. Examples: code directory: src/chrome/browser/ui/browser/ No flag => CHROME_BROWSER_UI_BROWSER_H_ --root=chrome => BROWSER_UI_BROWSER_H_ --root=chrome/browser => UI_BROWSER_H_ --root=.. => SRC_CHROME_BROWSER_UI_BROWSER_H_ linelength=digits Code line length, default: 120 characters. extensions=extension,extension,... The allowed file extensions that cpplint will check Examples: --extensions=hpp,cpp headers=x,y,... Examples: --headers=hpp,hxx --headers=hpp help Displays short usage information and exits. useage Displays detaile usage information and exits. generate Generate lint config file 'LINT.cfg' and exits about Displays version information and exits.$ ./lint.exe --generateThe LINT.cfg configuration file is generated successfully.# Copyright (c) 2022 skull.gu@gmail.com. All rights reserved.# Stop searching for additional config files.set noparent# Specifies the line of code for the projectlinelength=120# Error filter# -: filter, +: passfilter=+whitespace/preprocess# It's not worth lint-gardening the file.exclude_files=doc# The root directories are specified relative to CPPLINT.cfg dirroot=# The header extensionsheaders=# rule.1# Naming rules for file names# 0: indifferent, 1: pure lowercase, 2: lowercase +_, 3: lowercase + digit +_, 4: uppercase, 5: uppercase + digit +_# default: 3lint_file_naming=# rule.2# Whether copyright is required at the beginning of the file# start of file# -1: forbidden, 0: indifferent, 1: required# default: 1lint_copyright_sof=# rule.3# Whether a new line is required at the end of the file# end of file# -1: forbidden, 0: indifferent, 1: required# default: 1lint_newline_eof=# rule.4# Whether to disable TAB# -1: forbidden, 0: indifferent# default: -1lint_use_tab=# rule.5# The code line length# 0: indifferent, >0: length# default: 120lint_line_length=# rule.6# The number of lines in the function body# 0: indifferent, >0: length# default: 80lint_function_line=# rule.7# Number of Spaces to indent code.# 0: indifferent, >0: length# default: 4lint_space_indent=# rule.8# Whether extra space at the end of a line is allowed# -1: forbidden, 0: indifferent# default: -1lint_space_eol=# rule.9# Whether to allow multiple instructions in a row# -1: forbidden, 0: indifferent# default: -1lint_multiple_cmd=# rule.10# Whether blocks of code are required to use curly braces# -1: forbidden, 0: indifferent, 1: required# default: 1lint_block_braces=# rule.11# Whether to leave a space before or after the keyword# -1: forbidden, 0: indifferent, 1: required# default: 1lint_space_keyword=# rule.12# Whether to require 1 space before and after the operator# -1: forbidden, 0: indifferent, 1: required# default: 1lint_space_operator=# rule.13# Whether to ask preprocessor keyword '#include|#define|if|#elif|#ifdef|#ifndef|#endif' thus# 0: indifferent, 1: required# default: 1lint_preprocess_thus=# rule.14# For preprocessor keyword '#include|#define|if|#elif|#ifdef|#ifndef|#endif' allow space after '#'# -1: forbidden, 0: indifferent# default: -1lint_preprocess_space=# rule.15# Code Style selection# 1. K&R# if () {# a = b;# }# 2. Allman# if ()# {# a = b;# }# 3. Whitesmiths# if ()# {# a = b;# }# 4. GNU# if ()# {# a = b;# }# default: 1lint_code_style=# rule.16# The function name is lowercase +_# 0: indifferent, 1: required# default: 1lint_func_naming=# rule.17# Macro naming rules# 0: indifferent, 1: uppercase +_, 2: uppercase + number +_# default: 1lint_macro_naming=# rule.18# Enum naming rules# 0: indifferent, 1: uppercase +_, 2: uppercase + number +_# default: 1lint_enum_naming=# rule.19# Whether devil numbers are allowed# -1: forbidden, 0: indifferent# default: -1lint_devil_numbers=# rule.20# Comment style selection# 0: indifferent, 1: //, 2: /**/# default: 0lint_comment_style=# rule.21# Whether to disallow more than one consecutive blank line# 0: indifferent, 1: forbidden# default: 1lint_blank_line=# rule.22# Whether the type conversion using C-style cast (static_cast | const_cast | reinterpret_cast)# 0: indifferent, 1: required# default: 0lint_cstyle_cast=# rule.23# Whether to disallow multiple code statements on the same line# eg: "a = 1; b = 2;", "if (1) { c = 3; }"# 0: indifferent, 1: forbidden# default: 1lint_multiple_code=# rule.24# Whether comments are required after '#endif'# 0: indifferent, 1: required# default: 0lint_comment_endif=[DONE][DONE][DONE][DONE][DONE][DONE][DONE][DONE][DONE][DONE][DONE][TODO][DONE][DONE][TODO][DONE][DONE][DONE][DONE][DONE][DONE][DONE][DONE][DONE]pip2 install pyinstaller==3.2.1issue反馈给我