VSCodeとWSLでC/C++開発環境を構築する

Windows

VSCodeを使用してWSL上のC/C++開発環境を構築する。ここではCMake+makeおよびCMake+Ninjaでビルドする環境をそれぞれ構築する。

WSLおよびUbuntuをインストールする

WindowsにWSLおよびUbuntuをインストールする方法はこちらなどを参考に実施してください。

VSCodeおよびRemote-WSL拡張をインストールする

VSCodeおよびWSL上のUbuntuに接続するためのRemote-WSL拡張をインストールする。

VSCodeをScoopでインストールする

Scoopをこちらに従ってインストールする。
VSCodeを以下のコマンドでインストールする。

scoop bucket add extras
scoop install vscode

VSCodeを起動してRemote-WSL拡張をインストールする

スタートメニューなどからVSCodeを起動して以下のようにRemote-WSL拡張をインストールする。

VSCodeでWSLに接続してC/C++関連の拡張をインストールする

VSCodeでWSL上のUbuntuに接続する

左下の緑色のボタンを選択する。
Remote-WSL: XXXといったリストが表示されるので「Remote-WSL: New Window」を選択する。

新しいVSCodeが起動し、左下の緑色のボタンにWSL:[Ubuntuをインストール時に付けたディストリビューション名]が表示される。

C/C++関連の拡張をインストールする

VSCodeのアクティビティバーで拡張機能アイコンを選択する。
以下の拡張機能をインストールする。

  • C/C++
  • CMake
  • CMake Tools

C++のHello worldをビルドする

ここでは簡単なHello worldのプログラムを作成しビルドする。

ディレクトリ構成

以下のような構成とする。
buildディレクトリはビルド時に自動で生成される(CMake Toolsの設定による)。

hello
|-- CMakeLists.txt
|-- src
      |-- main.cpp
|--build // ビルド時に自動で生成される

cmake+make+gccでビルドする

gccとcmakeをインストールする

Terminalを開いてgccおよびcmakeをインストールする。
ついでにデバッグ用にgdbもインストールしておく。

sudo apt install build-essential
sudo apt install gdb
sudo apt install cmake

プロジェクト(作業用フォルダ)を作成する

Terminalで作業用のディレクトリを作成する。

mkdir hello

メニューの「File」->「Open Folder」を選択する。
作成したhelloフォルダ選択して「OK」を選択する。

main.cppを作成する

helloフォルダの下にsrcフォルダを作成する。
その下にmain.cppファイルを作成する。

#include <iostream>

using namespace std;

int main(){
  cout << "Hello world." << endl;
  return 0;
}

CMakeLists.txtを作成する

helloフォルダの下にCMakeLists.txtファイルを作成する。

cmake_minimum_required(VERSION 3.10)
project(hello_world)

add_executable(app src/main.cpp)

settings.jsonを編集する

settings.jsonを開きmakeの設定を行う。
※Ninjaをインストールしていなければ特に設定しなくてもよい。

{
    "cmake.generator": "Unix Makefiles",
    "cmake.configureSettings": {
        "CMAKE_MAKE_PROGRAM": "/usr/bin/make"
    }
}

ビルドを実行する

下記のボタンを順次押下してビルドおよび実行を行う。

  1. CMake [Debug] : CMake:Configure
  2. Build : CMake:Build(make)
  3. 三角ボタン : バイナリの実行

cmake+ninja+gccでビルドする

Ninjaをインストールする

Terminalを開いてNinjaをインストールする。

sudo apt install build-ninja

settings.jsonを編集する

settings.jsonを開いてninjaの設定をする。

{
    "cmake.generator": "Ninja",
    "cmake.configureSettings": {
        "CMAKE_MAKE_PROGRAM": "/usr/bin/ninja"
    }
}

ビルドを実行する

既にMakeでmakeしておりbuildフォルダが生成されている場合はbuildフォルダを削除する。
makeの場合と同様にVSCode下部のボタンを順次押下してビルドする。

VSCodeのsetting.jsonを開く

VSCodeの設定ファイルであるsettings.jsonは以下の手順で開くことができる。


まず、アクティビティバーの管理アイコンを選択してSettingsを選択する。

User / Remote / Workspace のいずれかのタブを選択して、右上の「Open Settings」アイコンを選択するとsettings.jsonを開くことができる。

User / Remote / Workspaceは以下のような違いがある。
プロジェクトに応じて設定を変えたい場合など適宜設定ファイルを選択するとよい。

  • User : VSCode全体(Windows/Ubuntuで共通)の設定
    • C:Users/[windows-username]/AppData/Roaming/Code/User 以下に保存される
  • Remote : Ubuntu全体の設定
    • /home/[ubuntu-username]/.vscode-server 以下に保存される
  • Workspace : プロジェクト(フォルダ)単位での設定
    • [作成したフォルダ]/.vscode 以下に作成される

以上でVSCodeを用いてWSL上でのC/C++開発環境を構築することができた。

コメント

タイトルとURLをコピーしました