🙆

clangd最新版のビルド手順

2024/05/13に公開

すぐ忘れそうなので手順を残します。

環境

  • Ubuntu22.04

参考

この記事の存在意義が失われますがここを見れば全て書いてあります。

https://llvm.org/docs/CMake.html

最新版clangdのダウンロード

LLVMプロジェクトをまるっとダウンロード or git cloneします。本記事の時点ではv19が最新のよう。

https://github.com/llvm/llvm-project/tree/main

私はDownloadsに落としました。200MB超えなので容量に注意してください。

ダウンロードできたらディレクトリ内に移動します。

~/Downloads
$ cd ./llvm-project-main

ビルド準備

cmakeはインストールしている前提としています。
Ubuntuであればsudo apt install cmakeでインストールできます。

1. buildディレクトリ作成

ビルド用のディレクトリを作成しその中に移動します。
ビルド用ディレクトリ名は何でもよいですが今回はbuildとします。

~/Downloads/llvm-project-main
$ mkdir ./build
$ cd ./build

2. cmake configuration

build内で以下を実行するとcmake configurationが始まります。

$ cmake ../llvm/ \
    -DCMAKE_BUILD_TYPE=Release \
    -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra" \

各オプションは以下で説明します。

  • -DCMAKE_BUILD_TYPE
    ビルドタイプを指定します。4種ありますが今回はReleaseを選びました。
Build Type Optimizations Debug Info Assertions Best suited for
Release For Speed No No Users of LLVM and Clang
Debug None Yes Yes Developers of LLVM
RelWithDebInfo For Speed Yes No Users that also need Debug
MinSizeRel For Size No No When disk space matters

引用
https://llvm.org/docs/CMake.html#frequently-used-cmake-variables

  • -DLLVM_ENABLE_PROJECTS
    LLVMには色んなプロジェクトが含まれていますのでどれをビルドするか指定します。
    今回はclangclangdです。;で区切ります。

3. ビルド

buildディレクトリ内で以下を実行します。

~/Downloads/llvm-project-main/build
$ cmake --build . --target install

私はクソ雑魚PCだからか3~4時間くらい掛かりました。のんびり待ちましょう。

4. インストール

ビルドが終わったらbuild/binclangclangdの実行ファイルが出来ていると思います。
実行ファイルが確認出来たら次のコマンドを実行します。

~/Downloads/llvm-project-main/build
$ cmake -DCMAKE_INSTALL_PREFIX=/opt/llvm -P cmake_install.cmake

-DCMAKE_INSTALL_PREFIXにインストール先を指定します。私は個別でソースビルドしたものは/optに入れる習慣があるので/opt/llvmとしました。

5. パスを通す

.bash_profileにでも追加しておくと便利です。

export PATH="/opt/llvm/bin:$PATH"

6. vim-lspで動作確認

vim-lsp-settingsを使用していますので、.vimrcに以下を追加します。

let g:lsp_settings = {
            \ 'clangd': {
            \   'cmd': ['/opt/llvm/clangd-15', '--enable-config'],
            \ }
            \}

vimを立ち上げて動作確認をします。

GitHubで編集を提案

Discussion