在Mac OS上Build、配置并使用LLVM

一、引言

LLVM这个名字最初的意思是底层虚拟机(Low Level Virtual Machine)的缩写,它是由美国伊利诺伊大学开发的一个开源项目。现在LLVM的意义已经远远超越它最初的意思,所以现在LLVM就是整个项目的名称。

 

在Mac OS上Build、配置并使用LLVM_第1张图片

 

具体来说,LLVM是以C++编写而成的编译器(compiler)框架系统,或者说是一个模块化和可重复使用的编译器和工具技术的集合,其核心库提供了与编译器相关的支持,可以作为多种语言编译器的后台来使用。利用LLVM,能够进行程序语言的编译期优化、链接优化、在线编译优化、代码生成。


如果上面的解释仍然令你感觉不得要领,那么简而言之——LLVM就是一套类似于GCC(及其相关工具)的编译工具。很多人会好奇二者的区别,或者孰优孰劣。相比而言,GCC历史悠久、树大根深,拥有庞大的用户群体。而LLVM是后起之秀,方兴未艾。既然是后来者,自然也就具有一定的后发优势,例如LLVM的编译速度很快(据说通常是GCC的三倍左右)、拥有独到的IR表示形式等等。

 

近些年来,LLVM发展很快,特别是它的主要贡献者Chris Lattner受雇于Apple专攻其编译器的开发之后,LLVM更是得到了Apple的大力支持。在新版的Xcode中,LLVM已经成为默认的后端编译器。2012年,LLVM荣获ACM软件系统奖,可见其价值已经得到学术界与产业界的广泛认可。

 

注意,下面演示的例子使用的LLVM版本是6.x(在文章最初写成之时),现在最新的LLVM版本是11.x(2020年5月)。从8.x之后,LLVM的安装步骤已经简化了许多,过程要比之前版本

你可能感兴趣的:(系统安全与逆向工程)