Clang
1.1、Clang简介

ClangLLVM架构中是作为C家族语言CC++Objective-C) 的默认前端

Clang兼容GCC,所以可以无缝的替换掉GCC

Clang针对GCC的许多不足进行了改进和优化。

Clang官网:http://clang.llvm.org

在某些资料中出现cfe,它是clang front-end的简写,它实际上就是指Clang
1.2、通过包管理器安装Clang
操作系统包管理器安装命令
Windowsscoopscoop install llvm
WindowsChocolateychoco install -y llvm
macOSHomeBrewbrew install clang
aptsudo apt-get install -y clang
CentOSyumsudo yum install -y clang
dnfsudo dnf install -y clang
openSUSEzyppersudo zypper install -y clang
Alpine Linuxapksudo apk add clang

Arch Linux

ArcoLinux

Manjaro Linux

pacmansudo pacman -Syyu --noconfirm
sudo pacman -S    --noconfirm clang
Gentoo LinuxPortagesudo emerge clang
1.3、通过编译源码安装Clang 

step1、安装依赖

下载时git
编译时cmakeninja、 ( gcc + g++ ) / GCC | Clang / LLVMCPython
运行时
  • glibc ( libc.sold-linux-x86-64.so )
  • GCC ( libstdc++.solibgcc_s.so )

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_PROJECTSSTRING
指定编译哪些LLVM子项目
多个之间用分号隔开
clangcompiler-rtdebuginfo-testslibclibclclibcxxlibcxxabilibunwindlldlldbllgoopenmpparallel-libspollypstl
构建全部使用all
LLVM_ENABLE_DOXYGENBOOLOFF是否生成基于Doxygen的文档
LLVM_ENABLE_SPHINXBOOLOFF是否生成基于Sphinx的文档
PYTHON_EXECUTABLESTRINGsearch 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
1.4、Clang中包含的命令