Clang
在LLVM架构中是作为C家族语言
(C、C++、Objective-C) 的默认前端
。
Clang
针对GCC的许多不足进行了改进和优化。
Clang
官网:http://clang.llvm.org
cfe
,它是clang front-end
的简写,它实际上就是指Clang
。操作系统 | 包管理器 | 安装命令 |
---|---|---|
Windows | scoop | scoop install llvm |
Windows | Chocolatey | choco install -y llvm |
macOS | HomeBrew | brew install clang |
apt | sudo apt-get install -y clang | |
CentOS | yum | sudo yum install -y clang |
dnf | sudo dnf install -y clang | |
openSUSE | zypper | sudo zypper install -y clang |
Alpine Linux | apk | sudo apk add clang |
pacman | sudo pacman -Syyu --noconfirm | |
Gentoo Linux | Portage | sudo emerge clang |
step1、安装依赖
下载时 | git |
编译时 | cmake、ninja、 ( gcc + g++ ) / GCC | Clang / LLVM、CPython |
运行时 |
step2、使用git下载LLVM
源码
git clone https://github.com/llvm/llvm-project.git
step3、进入llvm-project
目录
cd llvm-project
step4、查看llvm-project
目录的内容
LLVM
项目处处体现着设计感
。就连源码都管理的仅仅有条
、层次分明
。根目录下每个文件夹都是一个子项目
。
step5、使用cmake命令配置编译参数
cmake [option]... -D<变量>=<值> -S <sourceDIR> -B <buildDIR>
本软件特有的变量 | 类型 | 默认值 | 说明 |
---|---|---|---|
LLVM_ENABLE_PROJECTS | STRING | 指定编译哪些 LLVM 子项目多个之间用分号隔开 clang 、compiler-rt 、debuginfo-tests 、libc 、libclc 、libcxx 、libcxxabi 、libunwind 、lld 、lldb 、llgo 、openmp 、parallel-libs 、polly 、pstl 构建全部使用 all | |
LLVM_ENABLE_DOXYGEN | BOOL | OFF | 是否生成基于Doxygen的文档 |
LLVM_ENABLE_SPHINX | BOOL | OFF | 是否生成基于Sphinx的文档 |
PYTHON_EXECUTABLE | STRING | search PATH | 指定Python解释器 |
示例:
cmake \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
-DLLVM_ENABLE_PROJECTS=clang \
-G Ninja \
-Wno-dev \
-S llvm \
-B build.d
step7、使用cmake命令进行编译
cmake --build build.d
step8、使用cmake命令进行安装
cmake --install build.d