首页 > 移动平台 > 详细

《iOS-LLVM框架【2】》

时间:2020-06-02 19:57:11      阅读:63      评论:0      收藏:0      [点我收藏+]

 

技术分享图片

 

 

 技术分享图片

 

 

 技术分享图片

 

技术分享图片

 

 

 双击 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 中文版

 

技术分享图片

 

 

技术分享图片

 

 

 

 

 

 

 

 

 

 

 

 

 

《iOS-LLVM框架【2】》

原文:https://www.cnblogs.com/cx2016/p/13032321.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!