[官网原文]
(http://docs.oclint.org/en/stable/manual/oclint.html)
翻译一下:
【oclint指南】:
当我们启动OClint的时候,通常是先加载规则,然后进行编译,之后是分析并生成报告。不过我们也可以根据需要,改变每一步要做的事情。
我们可以通过oclint -help来查看oclint支持的可选参数(后面分类说明):
1、规则选项
[-R<directory>]
规则的加载路径可以用-R来改变,规则加载可以从多个路径进行加载,当设置为多路径加载,那么oclint会找到这些动态规则库:
$(/path/to/bin/oclint)/../lib/oclint/rules
[-disable-rule<rule name>]
这个选项可以通过规则的名字禁用规则,即使这些规则是系统自动加载的,也可以直接禁用。这个选项可以进一步节省不必要的检查。
[-rc<parameter>=<value>]
设定规则的边界值,决定是否命中规则,这些边界值可以通过-rc带key值的组合方式进行修改。
2、编译选项
编译器选项可以直接赋给oclint。oclint选项和源码变量后面,使用--分隔符连接所有编译器选项:
oclint [oclint options] <source0> [... <sourceN>] -- [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 <build-path>]
选择要分析的文件夹,在这个文件夹中已经存在compile_commands.json文件。如果没有明确指出build-path,那么会尝试在所有父路径的第一级目录下寻找这个文件。
如果没有准确的给出编辑器选项,oclint会默认这次的编译数据库是针对所有源文件,一般oclint会提供compile_commands.json文件。
3、源码选项
我们指出所有想要检查的源文件的路径,就可以通过一次调用分析所有要检查的文件。
4、报告选项
[-o <path>]
-o 这个命令,直接把报告输出到你指定的path下,而不是再直接打印在控制台上。
[-report-type<name>]
改变输出报告的类型,系统默认用的是纯文本类型。
5、退出状态选项
[-max-priority-1 <threshold>]
[-max-priority-2 <threshold>]
[-max-priority-3 <threshold>]
最大允许的级别为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的百度百科介绍)
网友评论