时时勤拂拭,勿使惹尘埃

TOC

Categories

LLVM(一)安装&编译


学习笔记

0x0 概述

LLVM ​项目​的起源于 Chris Lattner 个人对编译器的兴趣,在硕士毕业论文中,其提出了一套完整的在编译时、链接时、运行时甚至是在闲置时优化程序的编译思想,奠定了LLVM的基础。
相对于用c的gcc,用c++的llvm更高效、模块化、协议更放松,也更清爽、干净、现代化。
另外LLVM使用GCC作为前端来对用户程序进行语义分析产生 IF(Intermidiate Format),然后使用分析结果完成代码优化和生成。

0x1 安装

LLVM是Apple官方支持的编译器,而该编译器的前端是Clang,这两个工 具都被集成到了Xcode里面。而 Ubuntu 这样的主流Linux发行版,则可以使用 apt 包管理器进行安装。
所以macOS系统在苹果开发者中心下载好 Xcode 和对应版本的 Command Line Tools ,安装即可。
安装成功后clang -v指令可以获取版本信息:
$ clang -v
Apple LLVM version 10.0.0 (clang-1000.11.45.2)
Target: x86_64-apple-darwin18.0.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

0x2 llvm && clang 混合编译

想要深入学习 llvm,从源码编译生成 llvm 套件是必不可少的
LLVM Download Page
下载LLVM和Clang,并将Clang放入LLVM的tools目录下
$ wget http://releases.llvm.org/7.0.0/llvm-7.0.0.src.tar.xz
$ tar -xvf llvm-7.0.0.src.tar.xz
$ wget http://releases.llvm.org/7.0.0/cfe-7.0.0.src.tar.xz
$ tar -xvf cfe-7.0.0.src.tar.xz
$ mv ./cfe-7.0.0.src ./llvm-7.0.0.src/tools/clang/
在解压后的文件夹内部编译会失败,需要在外部新建一个文件夹
$ mkdir build
$ cd build
$ cmake -G "Unix Makefiles" ../llvm-7.0.0.src
$ make
cmake用于检查编译环境,没有报错即可执行make编译
如果没有cmake工具,可以用brew install cmake安装

0 评论:

发表评论