双击 xcodeproj 打开
点击 Play 按钮开始编译
编译完成以后在 Products 目录,show in Finder
写完cpp文件后要编译 MJPlugin
注册插件,Add Action
自定义 Consumer 类,继承自ASTConsumer 类
编译
重写HandleTranslationUnit 方法:
这个方法在clang编译完 一棵语法树(如mj_person.m 文件编译完成)后调用
换我们自己用Ninja 编译好的编译器
XCodeHacking.zip
.xcplugin 右键,显示内容
HackedClang.xcspec文件中 ExecPath 换成自己的编译器全路径:
Command + Shift + K:Clean 操作,清除上一次插件缓存
接下来,指定某一行报这错误信息:
如何扫描类名?==> 扫描语法树
效果已经出来了
来解释来龙去脉:
如果要开发更高级的插件:
1)深入了解语法树;
2)C++;
推荐:龙书 + LLVM Cookbook 中文版
https://www.bilibili.com/video/BV1ba4y147Uf
iOS高级技术技巧|iOS — LLVM快速实现一个Clang前端插件
讲得也还可以