OClint学习笔记

OCLint是一个静态代码分析工具,专注于找出Objective-C代码中的潜在问题。本文介绍OCLint的安装、使用方法,包括通过配置文件和命令行工具进行代码检查,以及如何自定义规则以适应项目需求。通过学习,你可以掌握如何利用OCLint优化代码质量,减少错误和冗余。
摘要由CSDN通过智能技术生成

一、简介

OCLint是一个静态代码分析工具,通过分析C、C++、Objective-C代码寻找潜在的问题,找出可能出现的潜在错误,减少复杂代码、冗余代码,提高代码质量。具有下面特点:

  • OCLint依赖于源代码的抽象语法数,检查高效并准确
  • 可以动态添加规则
  • 通过配置命令行调用,有利于用户持续集成应用时对代码进行检查,维护成本很低

二、小试牛刀

OCLint提供Release版本的下载,Release版本使用方便但失去了自定义的功能。我们可以在https://github.com/oclint/oclint/releases 中找到所有历史的Release版本(包括源码)。

  • 首先我们使用源码构建

    1. cd oclint-scripts
    2. ./make
    3. cd ..

    检查是否构建成功

    ./build/oclint-<major>.<minor>.dev.<git-hash>/bin/oclint
  • 使用oclint 、oclint-json-compilation-database和oclint-xcodebuild可以生成分析报告

    • 使用oclint是最基础的用法

      用法:oclint [subcommand] [options] <source0> [... <sourceN>]
      
      选项:
      
      一般选项:
      
      -help  - 显示可用选项(帮助隐藏更多)
      -help-list  - 显示可用选项的列表(-help-list-hidden为更多)
      -version  - 显示此程序的版本
      
      OCLint选项:
      
      -R = <directory>  - 将目录添加到规则加载路径
      -allow-duplicated-violations  - 在OCLint报告中允许重复的违例
      -disable-rule = <rule name>  - 禁用规则
      -enable-clang-static-analyzer  - 启用Clang静态分析器,并将结果集成到OCLint报告中
      -enable-global-analysis  - 编译每个源,并跨全局上下文进行分析(取决于源文件的数量,可能导致高内存负载)
      -extra-arg = <string>  - 附加到编译器命令行的附加参数
      -extra-arg-before = <string>  - 添加到编译器命令行的附加参数
      -list-enabled-rules  - 列出已启用的规则
      -max-priority-1 = <threshold>  - 允许的最大优先级1违例数
      -max-priority-2 = <threshold>  - 允许的最大优先级2违例数
      -max-priority-3 = <threshold>  - 允许的最大优先级3违例数
      -no-analytics  - 禁用匿名分析
      -o = <path>  - 将输出写入<path>
      -p = <string>  - 构建路径
      -rc = <parameter> = <value>  - 覆盖规则的默认行为
      -report-type = <name>  - 更改输出报告类型 如html
      -rule = <rule name>  - 显式选择规则
      
      -p <build-path>用于读取编译命令数据库。
    • oclint-json-compilation-database提供了一个简便的方式使用oclint。从oclint命令看到我们要给每个源文件设置参数,这对含有大量文件的工程来说使用oclint命令是否麻烦。幸运的是clang在编译的时候会生成JSONCompilationDatabase.json文件 http://clang.llvm.org/docs/JSONCompilationDatabase.html ,这个文件中含有各个文件的编译参数。

        ​```
        使用方法: oclint-json-compilation-database [-h] [-v] [-debug] [-i INCLUDES]
                                                [-e EXCLUDES]
                                                [oclint_args [oclint_args ...]]
      
        OCLint for JSON Compilation Database (compile_commands.json)
      
        positional arguments:
          oclint_args           arguments that are passed to OCLint invocation
      
        optional arguments:
          -h, --help            show this help message and exit
          -v                    sh
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值