LLVM之自定义clang插件(一)环境准备
作者:Rem ㅤ | 发布时间:
LLVM之自定义clang插件(一)环境准备
介绍
什么是LLVM
LLVM是构架(compiler)的框架系统,以C++编写而成,用于优化以任意程序语言编写的程序的编译时间(compile-time)、链接时间(link-time)、运行时间(run-time)以及空闲时间(idle-time),对开发者保持开放,并兼容已有脚本1。
什么是clang?
Clang是一个C++编写、基于、发布于LLVM 下的C///Objective-C++编译器2。
设备及操作系统要求
操作系统:Linux操作系统,本人操作系统:Ubuntu 20.04。
设备最低需要:8核20G内存 + 25G硬盘 ,如果达不到要求轻则编译超过三个小时,重则设备宕机。
我是用2核4G服务器结果在四五个小时后宕机:

后使用64核256G服务器编译速度飞起:

环境准备
编译工具ninja
安装编译工具ninja:
sudo apt-get install ninja-build
下载项目
项目地址:https://github.com/llvm/llvm-project.git
将此项目clone到本地即可。
编译
进入/llvm-project/目录下执行一下命令:
cmake -S llvm -B build -G Ninja -DLLVM_ENABLE_PROJECTS='clang' -DCMAKE_BUILD_TYPE=Release
即设置项目编译模式为clang,编译形式为Release。之后会自动在/llvm-project/目录下生成/build/目录,进入此目录,即/llvm-project/build/下执行一下命令:
cmake -DLLVM_TARGETS_TO_BUILD="X86" -DLLVM_ENABLE_PROJECTS=clang -DBUILD_SHARED_LIBS=ON -G Ninja ../llvm/
设置编译架构为X86,编译模式为clang,打开生成共享库。
执行ninja(在/llvm-project/build/目录下)
ninja
经过漫长的等待,编译成功后在/llvm-project/build/bin目录下可以看到生成了clang文件,则此步骤成功完成,若失败请删除build文件夹并重新编译。
至此环境已经搭建完成,下一节会讲述一个小例子。
[1]
[2]
标签:学习笔记