WSLに構築したC++開発環境にVisual Studio Codeからアクセスし、デバッグをできるようにするのが目的です。Web上にほかの情報もありましたが、いくつか躓きポイントがあったので改めて記事にします。
環境
- WSLが使えるようになっている
- Visual Studio Code 1.38.1
- 拡張機能
- C/C++ 0.25.1
- Remote - WSL 0.39.5
WSLにC++開発環境を導入
WSLのコンソールもvscode上で開きます。vscodeを開き、F1
を押してコマンドパレットにカーソルを合わせます。remote
等と入力し、Remote-WSL: New Window
を探します。
新規にウインドウが開きます(さっきのウインドウは閉じて大丈夫です)。左下にWSL: Ubuntu
と書いてあればOKです。
Ctrl + @
を押し、ターミナルを開きます。以下のコマンドを打ち込んで、C++開発環境とデバッガをインストールします。
sudo apt install build-essential
sudo apt install gdb
C++ファイルを作成
適当なフォルダを作り、vscodeでそちらのフォルダを開きます。例として~/work/cpp/test1
フォルダを作り、そちらを開きます。
エクスプローラー
→新規ファイル
からmain.cpp
ファイルを作りました。
今回は普通のハローワールドプログラムです。
#include <iostream>
int main() {
std::cout << "Hello world." << std::endl;
}
launch.jsonを作成
F5
で実行してみようとすると環境の選択
が開きます。C++ (GDB/LLDB)
を選択し、g++ build and debug active file
を選択します。
launch.json
ファイルができますが、とりあえず無視してmain.cpp
に戻り再びF5
を押すとタスクg++ build active fileを見つけられませんでした。
というエラーが出ます。
tasks.jsonを作成
F1
でコマンドパレットを開き、task
等で検索、タスク: タスクの構成
を選び、g++ build active file
を選択します。
tasks.json
が作られますが、これまた無視してmain.cpp
を開きます。
C++プログラムをデバッグ
変数を見るために少しプログラムを変えておきます。
#include <iostream>
#include <vector>
int main() {
int a = 0;
int b = 1;
std::vector<int> v = {1, 2, 3, 4, 5};
std::cout << "Hello world." << std::endl;
}
コード行数の左をクリックするか対象行でF9
を押すとブレークポイントを付けることができます。F5
を押すとデバッグが始まり、ブレークポイントで実行が止まります。宣言したa
やb
の値、vectorの中身も見ることができます。
コメント