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 上手。
相关链接
- 官网:[https://clang.llvm.org/docs/Tooling.html)
- Clang Plugin:[https://clang.llvm.org/docs/ClangPlugins.html)
- LibTooling:[https://clang.llvm.org/docs/LibTooling.html)
- LibClang API文档:https://clang.llvm.org/doxygen/group__CINDEX.html
- LibClang Python binding:https://pypi.org/project/libclang/
- 帮助看博客的网站:https://user.vipfour.xyz/register?aff=1510504