Clang Tutorial 第三部分(Plugin)

[TOC]

Clang Plugin简介

正如第一部分所提到的,Clang Plugin与LibTooling有点像,但是不能跟LibTooling一样对多个源文件进行分析处理。换句话说,Plugin每次不能处理多个文件,那么保留多个文件间的全局信息也是不行的。

但是,Clang Plugin仍有用武之地,比如语法检查和格式检查。所以,本文将构建一个跟第二部分LibTooling一样的例子。

......

继续阅读

Clang Tutorial 第二部分(LibTooling)

[TOC]

译者注:这里主要翻译了这篇tutorial,部分代码进行了修改,Makefile进行了重写,一些文字根据个人理解进行了增删改。

这里将先从LibTooling讲起,因为我认为这是Clang中最有用的接口。这里的代码只要略微修改一下就可以在Plugin的环境下使用了。下面就开始来看例子吧!

请注意:这里紧接着第一部分。

假设我们想要分析一个简单的C文件,叫test.c,如下所示:

......

继续阅读

Clang Tutorial 第一部分

[TOC]

最近接触到LLVM与Clang,发现这个貌似是未来编译器发展的趋势。我在网上看到一篇很不错的介绍LLVM/Clang的博文,这里尝试着将它翻译一下,并结合自身的使用经历将其代码验证一发。

什么是Clang

最近几个月,我一直在用Clang。Clang是一个LLVM编译工程的前端工具(frontend)。Clang可以解析及分析C语言家族(C, C++, ObjectiveC等等)的......

继续阅读