iOS学习使用 Xcode 开发 Clang 插件

Posted 软件开发员六六

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS学习使用 Xcode 开发 Clang 插件相关的知识,希望对你有一定的参考价值。

前言

最近在跟老大的聊天中聊到了一个比较特殊的需求:是否有办法在编译阶段检查某个方法的参数与返回值的类型相同,如果类型不一致的话能抛出编译错误的提示。这似乎已经不是 Objective-C 或者 Swift 的语言语法本身所能解决的了,老大还指点了可以从编译器等底层中进行研究。于是,我踏进了 Clang 和 LLVM 的大门。

我打算将 Clang 的研究心得分为几篇文章来写,这是 Clang 之旅的第一篇,主要讲如何用 Xcode 编译 Clang,以及实现一个简单的 Clang 插件并挂载到 Xcode 中参与编译流程,算是进入 Clang 的门槛。只是,这门槛就狠狠地让我吃了苦头,Google 找到好几篇博客讲怎么编译 Clang 的,但是也有一些年头了,版本比较旧,编译出来的 Clang 不能运行在现在的系统上;还有一些写的比较含糊,漏了某些关键步骤,导致花了好几个小时跟着教程做下来最后还是一堆 error;而且试错的成本还是比较高的,下载的源码有1G多(考虑从 Github 下载的速度??,需要挂个代理),完整编译出来有20G左右,我的15款 Macbook Pro 大概需要疯狂编译2个小时…...如果不能接受这些的话,还是别尝试了,很遗憾,你连见到 Clang 真容的机会都没有┑( ̄Д  ̄)┍

【iOS学习】使用 Xcode 开发 Clang 插件

llvm大小

编译源码

准备工作

Clang 需要用 CMake 来编译,建议对 CMake 完全不了解的同学可以先补充一点 CMake 的基本知识,这样能更容易理解接下来要做的事情

下载源码

首先创建 LLVM 的源码路径及编译路径:

(c)2006-2024 SYSTEM All Rights Reserved IT常识