前往
大廳
主題

手動編譯安裝 LLVM 工具

電晶晶體 | 2023-12-12 14:34:06 | 巴幣 2 | 人氣 192


安裝 LLVM toolchain

> 不想麻煩的可以直接看這篇:How to install Clang 17 or 16 in Ubuntu 22.04 | 20.04

hackmd
Install LLVM project from source code

步驟


提供我的安裝環境:

OS:       Ubuntu 22.04.3 LTS x86_64
Host:     Predator PH317-52 V1.26
Kernel:   6.2.0-37-generic
Shell:    bash 5.1.16
CPU:      Intel i7-8750H (12) @ 4.100GHz


安裝工具


gcc, ninja, cmake, make, git, python3

> 選擇需要的工具安裝即可, ninja, make 同樣都是建構工具,則一即可

工具安裝方式:

debian base linux :

sudo apt install build-essential ninja cmake git python3

下載 llvm-project


> 建議先決定把 llvm-project 放哪邊,我個人會放在自己建立的目錄 ~/ThirdPartyLib,用來放置需要手動編譯的工具或函式庫。

1. 下載至當前目錄
git clone https://github.com/llvm/llvm-project.git

2. 變更當前工作目錄 到下載完成的 llvm-project 目錄
cd llvm-project
這時可以在當前目錄下使用 git checkout 選擇想要的 llvm 版本

3. 在 llvm-project 目錄中建立 build 目錄 並切換工作目錄 至 build 目錄
mkdir -p build && cd build

編譯設定


build 資料夾下用於設定編譯選項的 shell script,針對只想使用 clang, lld 的使用者而非 llvm 開發者,可依據需要自行修改。請參考:Building LLVM with CMake
#!/usr/bin/sh

cmake -G Ninja ../llvm \
-DLLVM_TARGETS_TO_BUILD="X86" \
-DLLVM_ENABLE_PROJECTS=\
'clang;lldb;lld;clang-tools-extra;compiler-rt;mlir' \
-DLLVM_USE_LINKER=gold \
-DLLVM_PARALLEL_COMPILE_JOBS=$(nproc) \
-DLLVM_PARALLEL_LINK_JOBS=$[$(nproc) / 2] \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON

> -D 是 define,加在 cmake 參數選項之前,用於覆蓋編譯選項而不用修改 CMakefile.txt

llvm 選項

  • LLVM_TARGETS_TO_BUILD :建構平台,llvm-project/llvm/lib/Target 目錄中有完整的清單。
  • LLVM_ENABLE_PROJECTS :控制要啟用哪些 llvm project(我全都要)
  • LLVM_USE_LINKER : 選擇要使用的連結器
  • LLVM_PARALLEL_COMPILE_JOBS :定義編譯並行作業的最大數量。(請以當前電腦的最大 CPU 執行序數量自行設定)
  • LLVM_PARALLEL_LINK_JOBS :將其設定為您希望同時運行的作業數。類似於 make 中使用的 -j 選項,但僅適用於連結作業。此選項只能與 ninja 一起使用。

cmake 選項

  • G :選擇要使用的建構工具
  • CMAKE_BUILD_TYPE :建構類型
  • CMAKE_EXPORT_COMPILE_COMMANDS :在生成期間啟用/停用編譯命令的輸出。

編譯 & 安裝

在 llvm-project 目錄中 build 目錄底下執行
ninja

可以選擇輸入參數 -v,主要是顯示編譯過程的完整資訊,同 --verbose

編譯完成後使用以下指令進行安裝 (注意指令權限)
ninja install

使用 cmake 工具會在安裝完成後在 build 目錄底下生成 install_manifest.txt ,裡面紀錄了
各個工具的安裝位置,使用以下命令可移除安裝的工具 (注意指令權限)

創作回應

芭樂
推 最近在研究LLVM
2024-04-27 21:07:54

更多創作