けさらんぱの自由帳

とあるFF14プレイヤーがFF14のこととか関係ないことを書いていく予定のブログです。記載されている会社名・製品名・システム名などは、各社の商標、または登録商標です。

Emacsのeglot+clangdでプロジェクトルートとIncludeディレクトリを指定する

お仕事でちょっと変わったディレクトリ構成のCのコードを読むときに、Emacsのeglot+clangdで一部のインクルードファイルが読み込まれずにジャンプがうまくいかなくて苦労したのでメモ。

init.elの編集

~/.config/emacs/init.el を編集して次の行を追加します。

(setq project-vc-extra-root-markers '("compile_flags.txt"))

この記述をすると、 compile_flags.txt という名前のファイルがあるディレクトリがeglotが認識するプロジェクトのルートディレクトリとして設定されます。

compile_flags.txtの作成

次に、 compile_flags.txt という名前のファイルをプロジェクトのルートディレクトリに作成して、次の行を追記します。 Path\To\Project は実際のインクルードディレクトリのパスに変更してください。

-IPath\To\Include

この記述により、eglotから起動されるclangdにインクルードパスを追加することができます。

Emacsでジャンプする

上記の設定をすることで、 M-.M-, でカーソル下にある変数やマクロの定義にジャンプをすることができます。

記載されている会社名・製品名・システム名などは、各社の商標、または登録商標です。