美文网首页
OCLint 命令指南

OCLint 命令指南

作者: 何妨吟啸且徐行1 | 来源:发表于2018-07-24 15:38 被阅读0次

    [官网原文]
    (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的百度百科介绍

    相关文章

      网友评论

          本文标题:OCLint 命令指南

          本文链接:https://www.haomeiwen.com/subject/kuuemftx.html