关于OCLint自定义规则

本文介绍如何在Xcode9环境下配置OCLint并实现自定义规则的过程,包括安装配置、规则创建及扫描类名规范等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

###2017.9.25 升级Xcode9GM版本后是无法用Xcode9的命令行工具的,建议切换到Xcode8的命令行工具,或者等到OCLint新版本适配Xcode9

###静态编译分析 这段时间公司要求添加静态扫描的功能,还要能自定义规则,所以就花了两天进行研究。

1.Xcode内部自带的Clang Static Analyzer(简称CSA) 2.OCLint

两者都是基于clang的前端编译,CSA由于被内置,所以使用起来比较方便,但是可用的检查规则比较少,只有16条,大部分是核心向的功能例如空指针检测,类型转换检测,空判断检测,内存泄漏检测,无法检测代码风格,可扩展性比较差。 OCLint可用的检查规则有70+条,比OSA支持的规则多很多。所以选择了OCLint。

在Google搜+看OCLint文档+Clang文档+各种踩坑总结了如下步骤 OClint步骤: 前置操作: 安装xcpretty: sudo gem install -n /usr/local/bin xcpretty 1.直接下载github源码。然后通过homebrew安装cmake(后面要用)

2.cd 到oclint-scripts命令,执行./make 。

3.为profile_bash添加以下内容: OCLINT_HOME=YourOCLIntRootPath export PATH=$OCLINT_HOME/bin:$PATH()

4.cd 到根目录 然后执行oclint-scripts/scaffoldRule RuleName -t ASTVisitor

  1. mkdir oclint-xcoderules

  2. touch create-xcode-rules.sh

  3. cd到oclint-xcoderules,在create-xcode-rules.sh中添加cmake -G Xcode -D CMAKE_CXX_COMPILER=../build/llvm-install/bin/clang++ -D CMAKE_C_COMPILER=../build/llvm-install/bin/clang -D OCLINT_BUILD_DIR=../build/oclint-core -D OCLINT_SOURCE_DIR=../oclint-core -D OCLINT_METRICS_SOURCE_DIR=../oclint-metrics -D OCLINT_METRICS_BUILD_DIR=../build/oclint-metrics -D LLVM_ROOT=../build/llvm-install/ ../oclint-rules 然后执行该脚本

  4. 打开生成的OCLINT_RULES.xcodeproj,选择自定义的规则,重写visitxxx方法然后编译,得到生成的dylib,把dylib放到./build/oclint-release/lib/oclint/rules。就能让OClint识别自定义规则了。 以上是配置步骤。

目前只写了扫描自定义类名是否符合规范的规则,关于用C++重写AST的其它方法,我还要继续学习下去。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值