[C++] 令和最新版 C++をVisual Studio Codeで書きたい

Visual Studio CodeでC++を書こうと思っている皆さん、こんにちは。以前[C++/Mac] C++をVisual Studio Codeで書きたいという記事を書いたところそれなりのアクセスがあり、やっぱりみんなC++を書きたいんじゃないか!と狂喜乱舞していた(してない)んですが、最近はもう少し簡単にC++できるようになっているのでそのへんをまとめておきたいと思います。

VSCodeでC++を使う

まずは以下の拡張機能を導入しましょう。

拡張機能の導入

C/C++はMicrosoft謹製のC/C++開発よくばりセット。後述しますがデバッグには難があるので別途CodeLLDBを併用します。

CMake Toolsは読んで字の如くCMakeを扱うためのツール。コマンドパレットからビルドできるようになります。

CodeLLDBはLLDB(デバッガ)を利用するための拡張です。本家C/C++のデバッガは非常に扱いづらいため、こちらの拡張を利用します。

ビルド環境設定

ここからはプロジェクトを作成する方法を説明します。まずは適当なディレクトリを作って、そこをワークスペースとします。例では「Example」という名前でディレクトリを作りました。

コマンドパレットを開いて、CMake: Quick Startを選択します。コマンドパレットはCmd + Shift + PF1で開くことができます。

以下のようにツールキットを選択するように言われたら、各々の環境に合わせたツールキットを選択してください。Macの人ならclangが提示されると思います。

プロジェクト名を尋ねられるので、好きな名前をつけましょう。ここでは「Example」という名前にしています。

最後に、作成するプログラムの種類を選びます。ライブラリを作るならLibrary、実行形式ファイルを作るならExecutableです。ここではExecutableを選びます。

するとこんな感じのビルド設定ファイルが生成されます。

C++の設定

次にC++のコーディングに関する設定です。まずはコマンドパレットからC/C++: Edit Configurations(JSON)を選びましょう。

すると、以下のように設定ファイルが生成されます。

今までは上記の設定をそのまま利用していましたが、現在はCMake ToolsがCMakeの設定をうまい具合に読み込んで統合してくれるので、設定は最小限で構いません。具体的には以下のようになります。

{
    "configurations": [
        {
            "name": "Mac",
            "configurationProvider": "ms-vscode.cmake-tools"
        }
    ],
    "version": 4
}

うーん、簡潔でいいですね。インクルードパス等の設定はCMake側から引っ張ってくるので、ビルドが通っている状態であれば設定も問題ないということになります。

ビルドする

…のまえに、CMakeでビルドスクリプトを生成します。コマンドパレットからCMake: Configureを実行しましょう。ワークスペースにbuildというディレクトリが生成されます。

この状態でF7キーを押すとビルドの設定が始まります。コマンドパレットからCMake: Buildを選んだ場合も同じくビルドできます。

デバッグする

さて、最後にデバッグの方法をまとめておきます。デバッグはF5キーを押すか、コマンドパレットからCMake: Debugを選ぶことで実行できます。初回のみデバッガを何にするか尋ねられるので、LLDBを選択します。

すると、今度はデバッガの設定ファイル(launch.json)が開きます。

以下のJSONに置き換えてください。

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "lldb",
            "request": "launch",
            "name": "Debug",
            "program": "${workspaceFolder}/build/Example",
            "args": [],
            "cwd": "${workspaceFolder}",
            "console": "integratedTerminal"
        }
    ]
}

書き換わった部分は以下の2つです。

  • <your program>の部分をbuild/Exampleに置き換えています。
  • "console": "integratedTerminal"を追加しています。

設定が終わったらもう一度F5を押しましょう。今度はちゃんと実行されるはずです。ブレークポイントを設定すれば、その位置でちゃんと止まります。

補足

2021年2月現在、CMake Toolsにはisysrootを正しく解決できないバグがあります。修正方法については別途解説記事を書いたのでそちらを参照してください。

まとめ

エディタの設定が楽になったので令和もC++でいきましょう。

0 件のコメント :

コメントを投稿