こんにちは、もがちゃんです。
前回に続いてVisual Studio Codeの設定方法の紹介になります。
今回は、Visual Studio CodeでC/C++のコンパイル・デバッグが行るように環境設定します。
これから、C/C++を学習しようとしている人には簡単に設定できるのでオススメします。
目次
コンパイル環境(コンパイラ・リンカ・デバッガ)の設定
Windowsで使用できる主なコンパイルラとしては、Microsoft C++コンパイラ(MSVC)とgcc(GNU Compiler Collection)があります。
今回は、Windows環境以外でも使用できるgccを使用したいと思います。
Windowsでgccを使用するために必要となるコマンドやヘッダファイル、ライブラリ等がまとめられたMingw-w64が存在するので、これをインストールします。
Mingw-w64のインストーラは、以下のサイトからダウンロードすることが出来ます。
https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/installer/mingw-w64-install.exe/download
ダウンロードしたmingw-w64-install.exeを実行して次のようにインストールします。
インストーラを実行した際、「この不明な発行元からのアプリがデバイスに変更を加えることを許可しますか?」の確認ダイアログが表示されますが、「はい」を選択してインストールを進めます。
インストールが終わったら、ユーザー環境変数のPathにインストールディレクトリ内にあるbinディレクトリのパスを追加します。
スタートメニューの隣にある検索ボックスに「環境変数を編集」と入力して検索結果からコントロールパネルの環境変数を編集を選択します。
ユーザーの環境変数部分のPathを選択し、編集(E)ボタンをクリックします。
新規(N)ボタンをクリックして、mingw-w64インストールディレクトリ内にあるbinディレクトリのパスを追加して「OK」ボタンをクリックします。
私の場合は、C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\binでした。
機能拡張(C/C++ for Visual Studio Code)インストール
Visual Studio Codeを起動し、機能拡張の検索ボックスにcを入力して検索を行い、インストールします。
Hello Worldを出力するプログラムを作ってみる
今回はHello Worldフォルダーを作成し選択しました。
#include <stdio.h>
void main(int argc, char* argv[]) {
printf("Hello World!");
}
Hello Worldをデバッグ実行してみる
実行(R)メニューから構成の追加を選択する
環境の選択では、今回Mingw-w64(gcc)を使用するので、G++(GDB/LLDB)を選択します。
構成の選択では、gcc.exeを選択します。(表示されているパスは、Mingw-w64をインストールしたパスになっていると思います。)
構成の選択が終わると以下のようなjsonファイルが自動的に作成され、プログラムも実行されます。
{
// IntelliSense を使用して利用可能な属性を学べます。
// 既存の属性の説明をホバーして表示します。
// 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "gcc.exe - アクティブ ファイルのビルドとデバッグ",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "C:\\Program Files\\mingw-w64\\x86_64-8.1.0-posix-seh-rt_v6-rev0\\mingw64\\bin\\gdb.exe",
"setupCommands": [
{
"description": "gdb の再フォーマットを有効にする",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: gcc.exe アクティブなファイルのビルド"
}
]
}
launch.jsonのタブは、特に編集の必要がないので×印の所をクリックして閉じます。
ブレークポイントを設定するには、ソースの行番号付近をクリックすることで設定できます。(解除する場合は、ブレークポイントが設定されている行番号付近(赤丸部分)をクリックすることで解除できます。(赤丸が消えます)
下の画像では、printf文の所にブレークポイントを設定しました。
実行(R)メニューのデバッグの開始を選択するか、F5キーを押下することでデバッグ実行されます。
下の画像は、ブレークポイントで停止している画像になります。
F5キーを押下して、処理を継続してプログラムの実行が終了
- 続行(F5)
ブレークポイントで停止した場合、処理を続行する場合に使用します。 - ステップオーバー(F10)
ブレークポイントで停止した状態からステップ実行する場合に使用します。 - ステップイン(F11)
関数内に入ってステップ実行したい場合に使用します。 - ステップアウト(Shift + F11)
関数内から呼び出し元へ戻りたい場合に使用します。 - 再起動(Ctrl + Shift + F5)
- 停止(Shift + F5)