OCLint 命令指南

[官网原文]
(http://docs.oclint.org/en/stable/manual/oclint.html)

翻译一下:

【oclint指南】:

  当我们启动OClint的时候,通常是先加载规则,然后进行编译,之后是分析并生成报告。不过我们也可以根据需要,改变每一步要做的事情。
  我们可以通过oclint -help来查看oclint支持的可选参数(后面分类说明):

1、规则选项

[-R]
  规则的加载路径可以用-R来改变,规则加载可以从多个路径进行加载,当设置为多路径加载,那么oclint会找到这些动态规则库:

$(/path/to/bin/oclint)/../lib/oclint/rules

[-disable-rule]
  这个选项可以通过规则的名字禁用规则,即使这些规则是系统自动加载的,也可以直接禁用。这个选项可以进一步节省不必要的检查。
[-rc=]
  设定规则的边界值,决定是否命中规则,这些边界值可以通过-rc带key值的组合方式进行修改。

2、编译选项

  编译器选项可以直接赋给oclint。oclint选项和源码变量后面,使用--分隔符连接所有编译器选项:

oclint [oclint options]  [... ] -- [compiler options]

  例如使用clang命令编译一个文件:

clang -x objective-c -arch armv7 -std=gnu99 -fobjc-arc -O0 -isysroot /Developer/SDKs/iPhoneOS6.0.sdk -g -I./Pods/Headers -c RPActivityIndicatorManager.m

  如果我们需要检查这个文件,那么oclint分析文件的命令就是:

oclint [oclint options] RPActivityIndicatorManager.m -- -x objective-c -arch armv7 -std=gnu99 -fobjc-arc -O0 -isysroot /Developer/SDKs/iPhoneOS6.0.sdk -g -I./Pods/Headers -c

[-p ]
  选择要分析的文件夹,在这个文件夹中已经存在compile_commands.json文件。如果没有明确指出build-path,那么会尝试在所有父路径的第一级目录下寻找这个文件。
  如果没有准确的给出编辑器选项,oclint会默认这次的编译数据库是针对所有源文件,一般oclint会提供compile_commands.json文件。

3、源码选项

  我们指出所有想要检查的源文件的路径,就可以通过一次调用分析所有要检查的文件。

4、报告选项

[-o ]
  -o 这个命令,直接把报告输出到你指定的path下,而不是再直接打印在控制台上。
[-report-type]
  改变输出报告的类型,系统默认用的是纯文本类型。

5、退出状态选项

[-max-priority-1 ]
[-max-priority-2 ]
[-max-priority-3 ]
  最大允许的级别为1/2/3的违规结果数。
  这些可选值在oclint用在持续集成或其他构建系统中时,oclint会返回下面几种退出码的一种:

[0 - SUCCESS]
[1 - RULE_NOT_FOUND]
[2 - REPORTER_NOT_FOUND]
[3 - ERROR_WHILE_PROCESSING]
[4 - ERROR_WHILE_REPORTING]
[5 - VIOLATIONS_EXCEED_THRESHOLD]
[6 - COMPILATION_ERRORS]

  OClint执行了大量的静态代码规则,结果在可接受范围内的情况下,OCLint会一直返回0表示成功。如果错误码大于0,说明有bug或者其他问题,导致oclint执行失败了。
  例如,编译进程失败,返回状态码为3的时候,可能意味着编译选项设置不正确;返回状态码为6,则意味着源码错误。
  如果某一级别的错误超过了可容忍的错误范围,oclint就会返回5。默认情况下,优先级最低(3级)的错误数<=20个,优先级为中等(2级)的错误数<=10个,而且最严重也就是优先级最高的问题数为0的情况下,才可以通过检查。过多的违规代码会影响代码质量,这个时候OClint会返回失败。

6、全局分析选项

[-enable-global-analysis]
  启用OCLint全局分析;
  OCLint全局分析被启用,所给出的所有源码文件都会执行检查,而且会生成可靠的分析文件。全局分析被启用后,权值的计算以及其他分析操作,需要将其他文件在相同的项目里进行对比,提高了代码分析的准确度。但是,全局分析会造成大量内存占用,而且持续分析时间较长,所以一般是机器设备比较强大的时候才会启用。

7、Clang静态分析选项

[-enable-clang-static-analyzer]
  启用OCLint静态分析:一旦这个选项被启用,OClint会随着程序进程驱动Clang静态检查,收集检查结果并发布到检查报告中。需要注意的是,如果启用Clang静态检查的话,会很明显的出现分析时间的增加。

8、Debug选项

[-debug]
  开启OCLint的debug模式
如果OCLint是在debug模式下运行的,-debug会输出更详细的OCLint违规的信息。这些信息的打印可以帮助我们更好的理解OCLintFenix的整体进度。
  注意:这个命令只有OCLint是在debug标志下运行的时候才可用。

9、其他选项

[-no-analytics]
  禁用匿名分析
[-version]
  展示OClint、LLVM和一些其他环境变量的版本信息。
(ps:LLVM的百度百科介绍)

你可能感兴趣的:(OCLint 命令指南)