開発環境用にWindows 11上でWSLを有効にしてVisual Studio Codeから利用する

C言語の開発環境が必要になり、Windows 11上で気軽に利用できるよう、Windows Subsystem for Linux(WSL)を構成してみました。

また、Windows 11上にインストールしたVisual Studio Code(VS Code)から直接利用できるように設定を行いました。

前提

以下の条件で行いました。

  • Windows 11のバージョンは22H2
  • WSLは未インストール
  • VS Codeは1.81.1をインストール済
  • Windows 11を実行しているPCで仮想化支援機能が有効になっている必要あり

WSLのインストール

Windowsターミナルを管理者で起動し、以下のコマンドを実行します。

wsl --install

これだけで、Windowsの機能からディストリビューションまで、必要なものをすべてインストールしてくれました。*1

指示通りにWindows 11の再起動を行います。再起動後にUbunutのコンソールが自動でが立ち上がり、ユーザー名とパスワードが求められるので、適宜入力します。(コンソールが自動で立ち上がらない場合は、スタートメニューから「Ubuntu」をクリックして起動してください。)

無事、Linux環境にログオンできました。

(ここから記事用にキャプチャ取り直しているので、先ほどのキャプチャと少しフォントが違います)

Ubuntuのアップデート

起動したUbuntuはアップデートをかけておきます。

※ アップデートしないと、Ubuntu上からVS Codeの起動が出来ません。

sudo apt-get update

VS Codeの起動

Ubuntu上で以下のように実行します。

code .

警告が出ますが、今回は許可します。

VS Codeが起動しました。今回はこのフォルダを信頼しておきます。

これでひとまず、VS CodeでWSL環境を開くことが出来ました。(左側に表示されているディレクトリがWSL上のUbuntuのホームディレクトリです。)

WSL用の拡張機能を入れてVS CodeからUbuntuのターミナルを操作する

このままでも利用できるのですが、右下に表示されている、WSL用の拡張機能をインストールした方が便利なので、これをインストールします。

インストールをクリックすると拡張機能がインストールされて、ようこそ画面に移動します。

ここで「リモート メニューを開く」をクリックします。

コマンドパレットが開くので、「WSLへの接続」を選択します。

WSLの開始を示すメッセージが右下に表示されるので、少し待ちます。

起動後、一度VS Codeが切り替わり、WSLに接続した状態になります。左下にWSL上のUbuntuに接続された事が表示されます。また、エクスプローラーを開くと、「リモートに接続しました」と表示された状態になっています。

「フォルダーを開く」をクリックし、Ubuntuのホームディレクトリを今回は指定します。(既定で入っている場合はそのままOKを押します。)

ターミナルを開きます。

これで、VS CodeからWSL上のUbuntuを直接操作できるようになりました。

ビルドツールのインストール

このままだとビルドが出来ないので、ビルドツールをインストールします。(VS Code上からでもコンソールからでも、どちらからでも可能です)

sudo apt install build-essential

ビルドの実行

VS Code上で簡単なC言語のソースを書いてビルドしてみましたが、ビルド後の実行まで問題なくできました。

おわりに

様々な情報を調べながら環境を用意したのですが、自分用にシンプルな流れがまとまっていると楽かなと思ってまとめてみました。

Windows 11でWSLをVS Code経由でまずは簡単に使ってみたい、という方の参考になれば幸いです。

参考

learn.microsoft.com

*1:Windowsのオプションから追加する方法やMicrosoft Storeからインストールする方法などもありましたが、WSL未インストール状態から始める場合はこの方法が一番簡単でした。

執筆担当者プロフィール
舟越 匠

舟越 匠(日本ビジネスシステムズ株式会社)

人材開発部に所属。社内向けの技術研修をしつつ、JBS Tech Blog編集長を兼任。2024年8月からキーマンズネットPower Automateの連載を開始。好きなサービスはPower AutomateやLogic Apps。好きなアーティストはZABADAKとSound Horizon。

担当記事一覧