源码编译 clang | C & C++

本文最后更新于:2022年6月28日

从源码编译 clang,clang 可以用于 VS Code 后端以及支持 clang-format。

下载代码

官网这边下载源代码,包括以下四个文件:

  • LLVM source code
  • Clang source code
  • Clang Tools Extra source code
  • Compiler RT source code

注:可以在官网下载到的且支持 gcc 4.8.5 的 llvm 最高版本为 8.0.1。

组织代码

按照如下方式组织代码:

mv cfe-8.0.1.src clang
mv clang llvm-8.0.1.src/tools

mv clang-tools-extra-8.0.1.src extra
mv extra llvm-8.0.1.src/tools/clang

mv compiler-rt-8.0.1.src compiler-rt
mv compiler-rt llvm-8.0.1.src/projects

这样 clang、clang-tools-extra、compiler-rt 就可以和 llvm 一起编译了。

编译

cd llvm-8.0.1.src

mkdir build

cd build

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/clang -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=On -DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=On ..

make -j`nproc`

make install

导入环境变量

export PATH=$PATH:/usr/local/clang/bin

配置 VSCode 后端

  1. command + shift + p
  2. Edit Configurations (JSON)
{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [],
            "cStandard": "c11",
            "cppStandard": "c++14",
            "compilerPath": "/usr/local/clang/bin/clang",
            "intelliSenseMode": "clang-x64",
            "configurationProvider": "ms-vscode.cmake-tools"
        }
    ],
    "version": 4
}

参考

CentOS 7 编译安装clang+llvm