Clang#

认识 LLVM 和 Clang#

LLVM(Low Level Virtual Machine)是一个开源的编译器基础设施项目,它提供了一组模块化和可重用的编译器和工具链技术。LLVM 包括一个前端,用于解析源代码并生成中间表示(IR),以及一系列后端,用于将 IR 转换为目标机器代码。

Clang 是基于 LLVM 构建的 C、C++ 和 Objective-C 编译器。Clang 继承了 LLVM 的许多特性,如中间表示(IR)和代码优化,同时还提供了一些额外的功能,如代码补全、静态分析和重构工具。

简而言之,LLVM 是一个框架,而 Clang 是使用该框架构建的编译器。ClangLLVM 的一个重要组成部分,因为它利用了 LLVM 的中间表示和优化技术来提高编译速度和生成更高效的代码。

安装 Clang#

参考 https://apt.llvm.org,在安装 LLVM 的同时,也就把 Clang 装好了。

sudo apt install llvm clang clang-tools binutils-aarch64-linux-gnu \
    gcc-aarch64-linux-gnu g++-aarch64-linux-gnu

使用 Yocto 安装 Clang(kraj/meta-clang):

git clone https://github.com/openembedded/openembedded-core.git
cd openembedded-core
git clone https://github.com/openembedded/bitbake.git
git clone https://github.com/kraj/meta-clang.git

source ./oe-init-build-env

# Add meta-clang overlay
bitbake-layers add-layer ../meta-clang

# Cross compile Clang
bitbake clang