簡単になったC言語開発環境のセットアップ

これまでWindows 10でLLVMとVisual Studio CodeをベースにC言語の開発環境をセットアップする方法を説明してきた。これで必要最小限の環境は整ったはずだ。開発からデバッグ、チームでのソースコード共有や管理などを行える。

  • Visual Studio CodeとLLVMでC言語開発

    Visual Studio CodeとLLVMでC言語開発

本連載を開始してから、Windows Package Manager (Winget)のバージョン1がリリースされたのはインパクトが大きかった。なぜなら、これまでGUIベースでインストール作業を行う必要があったが、ほとんどCUIコマンドで行えるようになったからだ。GUIベースのインストールはセットアップ方法をメモしておくのが面倒だが、コマンドベースのインストールはメモしておくのが簡単だし、作業も簡単だ。これでWindows 10におけるさまざまなセットアップが簡単になる。

ここからがVisual Studio Codeのおいしいところ

ここまでのセットアップはあくまでも最低限の内容だ。実際にはどのコマンドが動作しているか、どのソフトウェアがどのような機能を担当しているのかを把握してほしかったので、あくまでも必要最小限のソフトウェアだけをインストールしてきた。

ここからは開発を簡単にする機能を追加でインストールしていく。開発者は好みのVisual Studio Codeエクステンションを使っており、必要な支援機能を活用している。その一歩として、C言語開発を支援する言語サーバを使ってみよう。

プログラミング言語のコーディングにおいては、C言語なら関数の宣言や型の定義を見直す作業が繰り返し発生する。通常、これは面倒な作業だが、言語サーバの力を借りるとリアルタイムでVisual Studio Code側が支援してくれるようになる。この機能を使いたいために、Visual Studio CodeやVisual Studioといった多機能エディタや統合開発環境から離れられない人も多いはずだ。

本連載では、C言語のコンパイラインフラストラクチャとしてLLVMを使っている。LLVMプロジェクトはC/C++の言語サーバとして「clangd」を開発しており、Visual Studio Code向けにclangdを使うためのエクステンションも提供している。この機能を使ってC言語開発の支援機能を使ってみよう。

言語サーバ「clangd」をインストール

LLVMをインストールしてあれば、C:\Program Files\LLVM\bin\にclangd.exeという実行ファイルがインストールされているはずだ。

  • clangd.exeがインストールされているか確認する

    clangd.exeがインストールされているか確認する

  • clangd.exeのインストールを確認

    clangd.exeのインストールを確認

clangd.exeのヘルプを確認すると、このコマンドが言語サーバであることがわかる。

  • clangd.exeは言語サーバ

    clangd.exeは言語サーバ

詳しい説明は省くが、言語サーバは統合開発環境やエディタからの問いかけに応えて支援機能のための情報を提供するソフトウェアと思ってもらえればよい。このサーバが存在していれば、さまざまな支援機能を得ることができるのだ。

Visual Studio Codeにclangdエクステンションをインストール

Visual Studio Codeに「clangdエクステンション」をインストールすれば、clangdの機能を利用できるようになる。

  • clangdエクステンションをインストール

    clangdエクステンションをインストール

clangdで検索すれば見つかるので、これをインストールしよう。

C言語支援機能を使ってみよう

clangdの支援機能を使うのに特に操作は必要ない。C言語のソースコードを入力していけば、自動的に支援機能が機能する。よくできているのだ。以下、自動的に機能する支援機能のスクリーンショットを掲載しておく。

  • #iからの入力候補表示

    #iからの入力候補表示

  • ヘッダ名の入力補完表示

    ヘッダ名の入力補完表示

  • 関数名の入力補完表示

    関数名の入力補完表示

  • 関数の引数を補完表示

    関数の引数を補完表示

  • 関数の引数を補完表示

    関数の引数を補完表示

  • コード改善の提案

    コード改善の提案

  • 提案に従って書き換えてもらった例

    提案に従って書き換えてもらった例

  • 入力補完表示

    入力補完表示

  • 関数定義の表示

    関数定義の表示

セットアップの最初の段階でこのエクステンションまでインストールすると、Visual Studio Codeにそもそも備わっている機能なのか、エクステンションによる機能なのかがわからなくなってしまうが、こうして順序立ててセットアップしていくと、どの機能がどのソフトウェアによってもたらされているのかがよく把握できると思う。

いくつものエクステンションをインストールすると機能がぶつかることもあるので、使うは必要に応じて選択するとよいと思う。最初から一気にエクステンションを入れるとわけがわからなくなってくるので、一つずつ試していこう。

参考