2017/12/13:ROS開発におけるエディタ選択 ( Visual Studio Code編 ) (2)

前回はVisual Studio Codeについてご紹介しました.
今回はVisual Studio Codeの環境でC++のプログラムを実行する手順です.

C++プログラムのコンパイル

起動できたら,実際に簡単なC++プログラムを書いてコンパイル,実行してみます.

必要なプラグインのインストール

まず初めにC++コードをコンパイル,実行するのに必要なプラグインをインストールします.左側に拡張機能のパネルがありますのでそちらを表示し,検索フォームに「C++」と入力します.

そうしたら検索結果で一番上にでてきたものをインストールしましょう.インストールが完了したら設定を読み込ませるために再読み込みボタンを押して読み込ませます.これで必要なプラグインをインストールできました.その他にもプラグインを入れたい場合はそれぞれ検索してインストールすることで設定ファイルを書くことなくプラグインを入れることができます.非常に簡単です.

ファイル新規作成

C++プログラムをコンパイルする際は一旦事前に任意のフォルダを作成し,そこにファイルを新規作成します.ここではホームフォルダにtestというディレクトリを作成し,test.cppというファイルをコンパイルすると言った例で進めます.ターミナルを開き,

$ mkdir ~/test

としてフォルダを作成します.そうしたらVS Codeを開き上部メニューバーから「ファイル」➡︎「フォルダを開く」で先ほど作成したフォルダを開きます.ファイル新規作成はエクスプローラーから先ほど開いたフォルダを右クリックし「新規ファイル作成」で作成することができます.ここではtest.cppとしましょう.test.cppの中身は,例のごとくHello Worldを表示するプログラムにします.

#include 
#include 

int main(int argc, char *argv[])
{
    std::cout << "Hello, World!" << std::endl;
    getchar();
    return 0;
}

上記コードをコピーしたらCtrl+sで保存します.

コンパイル・実行

続いてコンパイルですが,ここは少し手間が必要になります.まずCtrl+Shift+pを押してコマンドパレットというものを表示し,検索フォームにtaskと入力します.いくつか候補が出てきますが,その中の「タスク:タスクランナーの構成」を選択します.そうするとtask.jsonというファイルが生成されます.task.jsonの中身は,以下のようにします.

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "0.1.0",
    "command": "g++",
    "isShellCommand": true,
    "args": ["-O2", "-g", "test.cpp"],
    "showOutput": "always"
}

Linuxはコンパイラにg++を使用し,コンパイル時にはターミナルを開いてg++コマンドにより行います.task.jsonはそれらをVS Codeから行うために必要になります.

task.jsonを書き換えたらCtr+Shift+bでコンパイルし,エラーが表示されなければ,カレントディレクトリにa.outという実行ファイルが生成されます.

実行ファイルが生成されたら,F5を押してデバッグを開始すると,launch.jsonファイルが生成されます.このファイルはVS Code上でデバッグするためのファイルになります.Linuxですとgdbというデバッガを使用するため,launch.jsonを以下のように書き換えます.

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceRoot}/a.out",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceRoot}",
            "environment": [],
            "externalConsole": true,
            "MIMode": "gdb"
        }
    ]
}

書き換えたら再度F5を押すとターミナルが別途表示され,「Hello, World!」と表示されていたら成功となります.

コードを変更した場合は都度保存してCtrl+Shift+bでコンパイルし実行します.

 

まとめ

VS Codeを使うことによりコマンドラインを使用することなくLinuxでプログラミングすることができました.またVS CodeではROSの開発をサポートするためのプラグインが公開されており,これらを使用することでターミナルをほぼ使わずにROSプログラミングをすることができます.

 
次回はそのROSプラグインを活用する方法について説明します.
--
CIT 山本龍