【VC++解説】Visual Studio Code で Visual C++ 開発環境を構築 (MSVC編)

[記事内には広告が含まれています]

こんにちは、現役エンジニアの inno_tech です。

Visual Studio Code (以下、VSCode)Visual C++ の開発環境を構築する方法をお探しでしょうか?

本記事では、 VSCode上で、MSVC(Micorosoft Visual C++) を使って、Visual C++プログラミング を行う方法を解説しています。

もくじ

事前準備

はじめに、事前準備として、VSCode のインストール(こちらからダウンロード) を済ませておいてください。

また、VSCode拡張機能から C/C++ をインストールしておいてください。

VSCode拡張機能 | C/C++
VSCode拡張機能 | C/C++

MSVC の入手

MSVC(Microsoft Visual C++)は、マイクロソフトが提供する C++、C、アセンブリ言語の開発ツールです。
通常は Visual Studio(本家) をインストールする際に一緒にインストールされますが、単独でインストールしてVSCodeから利用することも可能です。

MSVC の インストール手順

入手方法ですが、Microsoftこちらのページ にアクセスし、ページ下の方にある「すべてのダウンロード」から「Tools for Visual Studio > Build Tools for Visual Studio 2022」をダウンロードします。

Build Tool for Visual Studio 2022 の ダウンロード
Build Tool for Visual Studio 2022 の ダウンロード

続いて、ダウンロードしたファイル(vs_BuildTools.exe) を起動します。

Build Tool for Visual Studio | 起動画面
Build Tool for Visual Studio | 起動画面

すると、インストール内容を設定するウィンドウが開きます。「C++によるデスクトップ開発」にチェックを付けます。必要に応じて、オプション内容を追加してください。

Build Tool for Visual Studio | インストール内容の設定

今回は 古いバージョンの Windows SDK以外はチェックを付けました

C++ によるデスクトップ開発 | オプション設定(参考)
C++ によるデスクトップ開発 | オプション設定(参考)

また、下の方にある C++ Tools for Linux Development もインストールしました。

C++ Tools for Linux Development の追加(参考)
C++ Tools for Linux Development の追加 (参考)

これは必須ではないよ

設定が終わったら、インストールを進めてくださいインストール完了後は、PCを再起動します。

ファイルサイズが大きいこともあり、インストールには30分以上かかる可能性もあります。

MSVC の 動作確認

インストール完了後、MSVCコンパイラ(cl.exe) が使えるかどうかを確認します。

スタートメニューから、「Visual Studio 2022 > Developer Command Prompt for VS2022」を起動します。

Developer Command Prompt for VS2022
Developer Command Prompt for VS2022

起動したプロンプト内でclと入力して実行し、以下のような画面になっていいれば正常な状態です。

Developer Command Prompt for VS2022 | clコマンド実行結果
Developer Command Prompt for VS2022 | clコマンド実行結果

これでコンパイラが入手できたよ。

続いて、サンプルプロジェクトを作成し、実際にプログラムのビルドを行います。

ソースコードの作成 と ビルドテスト

プロジェクトディレクトリ(今回はcpp_test)を用意し、その中にサンプルソースコード helloworld.cppを作成します。

#include <iostream>
#include <vector>
#include <string>

using namespace std;
int main(){
    vector<string> msg {"Hello", "C++", "World"};
    for (const string& word : msg){
        cout << word << " ";
    }
    cout << endl;
    return 0;
}

ソースコードの準備ができたら、ビルドを行います。

ソースコードを開いた状態で、VSCodeエディタ上の右上に表示されているボタンをクリックし、「Run C/C++ File」を選択します。

VSCode | Run C/C++ File
VSCode | Run C/C++ File

すると、VSCodeがインストール済みのコンパイラを自動認識し、その一覧が表示されます。一覧の中からcl.exeを選択します。(cl.exe が MSVCに含まれるコンパイル用ツールです。)

VSCode | コンパイラの選択
VSCode | コンパイラの選択

ここで、以下のエラーが発生することがあります

cl.exe build and debug active file is only usable when VS Code is run from the Developer Command Prompt for VS.

VSCode | ビルド時のエラーメッセージ
VSCode | ビルド時のエラーメッセージ

この場合、スタートメニュー > Developer Command Prompt for VS2022 から VS Code を起動し直すことで、エラーを解消できます。

cd [Project Directory]

# カレントディレクトリでVSCodeを起動
code .

ビルドが成功すると、exe等のバイナリファイルが生成されます。また、VS Code のターミナル上には実行結果が表示されています。

VSCode | ビルド結果
VSCode | ビルド結果

また、「Run C/C++ File」を実行すると、.vscode ディレクトリが自動生成され、その中にtasks.jsonが生成されます。このファイル内では、ビルド時の実行引数といった各種設定が記述されています。今後開発が進むにつれ、必要に応じて修正してください。

VSCode | tasks.json の自動生成
VSCode | tasks.json の自動生成

ひとまず ビルド と プログラムの実行に成功しました。さらに、開発をしやすくするために launch.jsonという設定ファイルを作成します。

.cppファイル以外は不要なので、一旦削除してOKだよ。

launch.json の作成

launch.json を作成するには、VSCode の 「Run and Debug」を開いて、create a launch.json file をクリックします。

VSCode | launch.jsonの作成
VSCode | launch.jsonの作成

さらにメニューが表示されるので、「More C++ (Windows) options… > C/C++: cl.exe build and debug active file」を選択します。

VSCode | launch.jsonの作成 (環境の選択1)
VSCode | launch.jsonの作成 (環境の選択1)
VSCode | launch.jsonの作成 (環境の選択2)
VSCode | launch.jsonの作成 (環境の選択2)

以上の操作により、下記のような launch.json.vscode内に自動生成されます。

{
  // Use IntelliSense to learn about possible attributes.
  // Hover to view descriptions of existing attributes.
  // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
  "version": "0.2.0",
  "configurations": [
    
    {
      "name": "C/C++: cl.exe build and debug active file",
      "type": "cppvsdbg",
      "request": "launch",
      "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
      "args": [],
      "stopAtEntry": false,
      "cwd": "${fileDirname}",
      "environment": [],
      "console": "integratedTerminal",
      "existing": false,
      "preLaunchTask": "C/C++: cl.exe build active file",
      "detail": "preLaunchTask: C/C++: cl.exe build active file",
      "taskDetail": "Task generated by Debugger.",
      "taskStatus": "Configured Task",
      "isDefault": true
    }
  ]
}

launch.jsonを作成したら、helloworld.cppを開いた状態でF5キーを押すと、自動的にビルドされ、プログラムが実行されます。

これは launch.jsonプログラム実行前にビルドを行う設定がされているからです。 具体的にはpreLaunchTask キーで、tasks.json内の「C/C++: cl.exe build active file」と関連付けされています。

VSCode | launch.json と tasks.json の関係
VSCode | launch.json と tasks.json の関係

以降は、ソースコードを修正 ⇒ F5を実行 し動作確認、という流れで開発を進めていきます。

ブレークポイントを設定すれば、プログラムのデバッグ実行もできるよ。

さらに開発を進めるため にJSONファイルを変更

ここまでの開発環境では、現在開いている単一ファイルのビルド設定しかなされていないので、他のソースコードファイルを追加することができません

そこで、srcディレクトリ内にソースコードを保存binディレクトリ内に実行ファイルが出力される想定で、さらにtasks.jsonlaunch.jsonを書き換えていきます。

最終的なディレクトリ構造は以下のイメージです。

サンプルプロジェクトのディレクトリ構成
サンプルプロジェクトのディレクトリ構成

まずtasks.json3か所変更を行います。(変更点はコメントを付与)

{
  "tasks": [
    {
      "type": "cppbuild",
      "label": "C/C++: cl.exe build active file",
      "command": "cl.exe",
      "args": [
        "/Zi",
        "/EHsc",
        "/nologo",
        "/Fe${workspaceFolder}\\bin\\cpptest.exe", // 実行モジュールの出力先を変更
        "${workspaceFolder}\\src\\*.cpp"  // ビルド対象ファイルを src内の拡張子cppファイル全て とする
      ],
      "options": {
        "cwd": "${workspaceFolder}\\bin" // ビルドを実行するディレクトリの設定
      },
      "problemMatcher": [
        "$msCompile"
      ],
      "group": {
        "kind": "build",
        "isDefault": true
      },
      "detail": "Task generated by Debugger."
    }
  ],
  "version": "2.0.0"
}

srcディレクトリのファイルをビルド対象にして、出力ディレクトリを bin配下に変えたよ。

続いて、launch.jsonは、programキー を 実行モジュールの出力先に合わせて修正します。

{
  // Use IntelliSense to learn about possible attributes.
  // Hover to view descriptions of existing attributes.
  // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
  "version": "0.2.0",
  "configurations": [
    
    {
      "name": "C/C++: cl.exe build and debug active file",
      "type": "cppvsdbg",
      "request": "launch",
      "program": "${workspaceFolder}\\bin\\cpptest.exe",  // 実行モジュールの出力先に合わせて変更
      "args": [],
      "stopAtEntry": false,
      "cwd": "${fileDirname}",
      "environment": [],
      "console": "integratedTerminal",
      "existing": false,
      "preLaunchTask": "C/C++: cl.exe build active file",
      "detail": "preLaunchTask: C/C++: cl.exe build active file",
      "taskDetail": "Task generated by Debugger.",
      "taskStatus": "Configured Task",
      "isDefault": true
    }
  ]
}

最後に、ソースコードファイルをsrc内にファイルを移動してください。

以上を対応し、F5を押せば、src内のcppファイルがビルドされ、bin内に実行モジュールが出力されます

まとめ

今回のまとめです。

  • MVSC と VSCode を使ったVC++開発環境 について解説.
  • tasks.json で ビルド設定を行っている.
  • launch.json で VSCode上の操作(タスク) をショートカット的に実行できる.

最後に、 2024年にamazon ビジネス実用本の売れ筋ランキング で1位にもなったこちらの書籍はご存じでしょうか?もしご存じでなければこちらからレビューをチェックしてみてはいかがでしょうか。

参考になったでしょうか。
ほかにも役立つ情報が他のページにもあるかもしれません。
ご覧になるかはあなた次第です!

この記事がイイねと思ったら、Twitterフォロー か  にほんブログ村のどちらかしてくれたら嬉しいよ!

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!

コメント / ご要望

コメントする

goto
もくじ
閉じる