三种工具Clang AST解析的对比

poocoogoo 2021年10月28日 4,541次浏览

官网LLVM Clang Tooling

LibClang

上手简单,功能受限。不能完全的操作Clang AST。
并且还支持 Python,对于不会C++的开发者非常友好。
经过试验,这个工具也能完成解析工作。
部署过程中,需要解析Compile Database。

Clang Plugins

结合Xcode使用,是一种非常好用的工具。可以定制很多功能。
生成一个.dylib,可以结合CocoaPods,非常方便进行集成。
部署过程中,不用关注Compile Database。
可以完整的操作 Clang AST,缺点是依赖于Xcode版本。相隔几个版本Xcode,无法使用。

LibTooling

非常强大的工具,生成二进制,部署非常方便,与持续交付工具很好的结合。
可以完全的操作AST,并且可以解析单个文件。
部署过程中,需要解析Compile Database。

使用场景对比

如果是iOS 开发者,对于工具执行时间不敏感的场景,使用 Clang Plugin;
如果要支持单个文件解析,并且对 Clang AST 支持完整控制的能力,使用 LibTooling会更合适;
如果是Python开发者,可以使用 LibClang 上手。

相关链接