やりたいこと
「VScodeからWSLを起動し,C/C++の開発を行いたい!」
C/C++の開発環境を整えるために,下記の方法を検討していました.
・vscode + wsl2
・Visual Studio
・vscode + Cygwin
私は今後Linuxでの開発も視野に入れているため一つ目の方法を取ることにしました.
環境
・Win 11
・WSL(Ubuntu)
参考サイト
VScodeの拡張機能のインストール
リモート接続ができるように下記のいずれかをインストールしてください.
・WSL(以前はRemote-WSLという名前だった)
https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-wsl
・Remote Development
https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.vscode-remote-extensionpack
※Remote Developmentは「Dev Containers」「WSL」「Remote-SSH」「Remote-tunnels」の4つの拡張機能を有するメタパッケージです.
VScodeからWSLにリモート接続をする
もともと,WSLはWindows OSの上に無理やりLinuxの環境(カーネル?)を構築していました.そのため,Windowsのファイルシステム(エクスプローラなど)を使ってWSLで使用しているディレクトリを操作することはできませんでした.(WSL2では可能です.)そこで,SSH接続とは違いますが,「ローカルPC上のWSLに同じローカルWindows上のVScodeからリモート接続する」ことでWSLを起動します.(引用元:https://qiita.com/_masa_u/items/d3c1fa7898b0783bc3ed)
以下からは,VScodeとWSLがインストールされていることが前提での話となります.インストール方法は省略させてください.
まず,Windows PowershellからWSLを起動してください.
wsl
その次にターミナルに
code .
を入力するとVScodeが起動します.以上でVScodeからWSLへリモート接続できました.
なお,VScodeからも起動できます.左下のマークをクリックすると,
上部の検索窓がこのように選択できます.
接続が完了すれば,左下が次のように変化します.
C\C++の開発環境の構築
1.WSLへパッケージをインストール
gcc, g++, make, gdbなどを個別にインストールしてください.
sudo apt install gcc
sudo apt install g++
sudo apt install make
sudo apt install gdb
なお,私は試していないですが,「build-essential」という開発に必要なパッケージをまとめたメタパッケージもあるそうです.
2.VScodeのC/C++の拡張機能をインストール
私はパッケージをインストールしました.(写真はインストール後)
こちらは仮に以前インストールをしていたとしても,再度インストールし直してください.(詳細は分かりませんが,WSLのUbuntuに対してインストールが要求されています.おそらく下記のようなボタンが表示されていると思います.)
それではいよいよビルド+デバッグの設定です.
3.フォルダ選択 と C言語ファイルの作成
まず,エクスプローラでメインフォルダを開きます.
このフォルダの任意の位置にプログラムファイルを作ってください.この記事ではtest.cを作成します.
touch test.c
このファイルを編集し,任意のファイルを作ってください.下記に一例を載せます.
#include <stdio.h>
int main(void){
int a = 3;
int b = 4;
printf("%i+%i = %i\n",a, b, a+b);
return 0;
}
2.lanch.json と tasks.jsonの作成
先ほどのtest.cファイルを開いたまま,F1もしくは上部検索窓から「C/C++:デバッグ構成の追加」を選択してください.
これからいずれかを選択します.(調査不足ですが,どれでも大丈夫です.)
すると,「.vscode」フォルダ直下にlanch.json と tasks.jsonが作られます.これらのファイルはビルド&デバッグをするときに必要な設定ファイルです.
いざ実行!
ここまでですべて終了しました.あとはF5を押してください.ターミナルに実行結果が出力されるはずです.デバッグを行いたいときは,ブレークポイントを選択して下さい.