1. 概要
本書は、Windows環境において、超高速エディタ Zed と Clang/LLVM ツールチェーンを組み合わせた、モダンかつ軽量なC言語開発環境を構築するための手順書です。
従来の重厚なIDE(Visual Studio等)を避け、「エディタの軽快さ」と「コンパイラの厳密なエラーチェック」を両立させることを目的としています。また、CMakeと .clangd 設定を活用することで、プロジェクトルートを汚さず、Git管理が容易な構成を目指します。
2. ツールチェーンのインストール
- MSYS2のインストール: msys2.org からインストーラーを入手し、インストールします。
- パッケージ導入: スタートメニューから 「MSYS2 CLANG64」 ターミナルを起動し、以下を実行します。
Bashpacman -S mingw-w64-clang-x86_64-clang \ mingw-w64-clang-x86_64-clang-tools-extra \ mingw-w64-clang-x86_64-cmake \ mingw-w64-clang-x86_64-ninja \ mingw-w64-clang-x86_64-lldbclang-tools-extra: 補完エンジンclangdを含みます。lldb: Zedでのデバッグに使用するデバッガです。
- 環境変数の設定: システム環境変数
PathにC:\msys64\clang64\binを追加します。
3. プロジェクトの設定ファイル
3.1 CMakeLists.txt
プロジェクトのルートに配置します。LSP用の情報を自動出力する設定を含めます。
CMake
# CMakeの最小バージョンを指定
cmake_minimum_required(VERSION 3.10)
# プロジェクト名と使用言語を設定
project(MyProject C)
# C言語の標準規格を指定 (例: C11)
set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED ON)
# LSP(補完)のためにコンパイル情報を出力
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
# 実行ファイルの生成設定
add_executable(app main.c)
3.2 .clangd (LSP補完設定)
build/ フォルダ内の情報をZedに認識させます。これにより、ルートにリンクを貼る必要がなくなります。
YAML
CompileFlags:
CompilationDatabase: build/
3.3 .zed/tasks.json (タスク定義)
コマンドパレット(Ctrl+Shift+P > task: spawn or Alt+Shitf+R)から実行可能です。
JSON
[
{
"label": "CMake: Configure",
"command": "cmake",
"args": ["-B", "build", "-G", "Ninja", "-DCMAKE_C_COMPILER=clang", "-DCMAKE_BUILD_TYPE=Debug"],
"use_new_terminal": true
}
]
3.4 .zed/debug.json (デバッグ設定)
Zed公式の形式に準拠。デバッグ開始前に自動でビルドを実行します。
JSON
[
{
"label": "Debug My App",
"build": {
"command": "cmake",
"args": ["--build", "build"],
"cwd": "$ZED_WORKTREE_ROOT"
},
"program": "$ZED_WORKTREE_ROOT/build/app.exe",
"request": "launch",
"adapter": "CodeLLDB"
}
]
4. 開発ワークフロー
ステップ1:初回セットアップ
ターミナル(PowerShell等)で一度だけ実行し、ビルド環境を生成します。
Bash
cmake -B build -G "Ninja" -DCMAKE_C_COMPILER=clang -DCMAKE_BUILD_TYPE=Debug
ステップ2:コーディングと補完
Zedでプロジェクトを開きます。.clangd ファイルの効果により、標準ライブラリや自作ヘッダーの補完・エラーチェックが即座に有効になります。
ステップ3:デバッグ実行
- ブレークポイントの設定: 行番号の左側をクリックします。
- 実行:F5キー を押します(または
Ctrl + Shift + Dから選択)。- 自動的に
cmake --build buildが走り、デバッグが開始されます。
- 自動的に
5. Git管理(.gitignore)
ビルド成果物がリポジトリに混入しないよう、以下の設定を推奨します。
Plaintext
build/
.zed/
完成後のフォルダ構成
Plaintext
my-project/
├── .git/ # Gitデータ
├── .gitignore # [Git管理] build/ を除外
├── .clangd # [Git管理] LSP参照先をbuild/に指定
├── .zed/ # [Git管理] Zed専用設定フォルダ
│ ├── tasks.json # [Git管理] 構成・ビルド用タスク
│ └── debug.json # [Git管理] デバッグ定義 (F5用)
├── CMakeLists.txt # [Git管理] ビルド設定
├── main.c # [Git管理] ソースコード
└── build/ # [Git除外] ビルド成果物 (CMakeにより生成)
├── compile_commands.json # LSPが参照する実体
└── app.exe # デバッグ対象のバイナリ

コメント