0.背景
最近项目接触需要接触到编译器方面的东西,为的就是对现有技术体系进行语法级的加强。首先考虑的就是利用GCC完成这件事,无奈GCC模块化不及苹果的LLVM好,所以选用LLVM完成这件事。
1.什么是LLVM
百度上有许多相关的资料,这里推荐一篇写的很不错的文章讲述什么是LLVM,给使用者一个简单的了解。我也是从这个博客开始接触LLVM的。
http://blog.csdn.net/snsn1984/article/details/8036032
2.下载、编译LLVM
猛戳 http://llvm.org/releases/download.html 登入LLVM项目的官网下载LLVM,对于我的项目我需要下载以下三个源码:
LLVM source code
Clang source code
Compiler RT source code
要是只需要简单接触一下LLVM的话只要下载对应的Pre-built Binaries即可
对于下载页面其他LLVM子项目的介绍,可以上 http://llvm.org/ 首页查看
下载过后分别解压缩三个文件,将解压后的Clang source code文件夹放入解压后的LLVM / tools 中,将解压后的 Compiler RT source code文件夹放入 LLVM / projects中, 在LLVM文件夹下新建目录 build,进入build目录依次运行 cmake ../ make 即可
在编译LLVM的时候或许会遇到cmake版本不够高,g++版本不够高的情况,因为LLVM是用C++写的。
推荐升级cmake的时候直接上 http://www.cmake.org 下载对应版本的 Binary 文件。
升级g++ 用 wget方式下载 源文件,升级g++的具体步骤参见: http://www.cnblogs.com/lizhenghn/p/3550996.html
3.简单运行LLVM进行编译
成功编译后会发现LLVM文件夹中多了许多执行文件,执行 ./clang -help 检查当前LLVM是否被成功编译。适用方法与GCC编译文件类似,执行命令 ./clang a.c 运行 ./a.out 吧!