LoginSignup
48

More than 3 years have passed since last update.

Linux+ VSCodeで、C++開発環境構築

Last updated at Posted at 2019-08-15

2019/08現在の情報であることに留意すること。

新人教育用に、Linux + VSCodeで、C++開発環境を構築する。
最小構成であればもっと簡単に構築できるが、
一般的な大規模開発環境の勉強が目的のため、
CMakeを使用して構築を行う。

※ディリクトリとフォルダの呼称が混在しているので注意。
 Unix系はディリクトリ、Windows系はフォルダと呼ぶがどちらも同じ。
 VSCodeはMicroSoftが開発元のため、Linuxでもディリクトリをフォルダと呼んでいる。

前提条件(サンプル環境)

Linux環境が使用可能であること(ここでは、Linux Mintを使用)

  • Linuxのバージョン確認
~$ lsb_release -a
No LSB modules are available.
Distributor ID: LinuxMint
Description:    Linux Mint 19.2 Tina
Release:    19.2
Codename:   tina
  • リポジトリ一覧を更新
~$ sudo apt update
  • パッケージの更新
~$ sudo apt upgrade

C/C++ビルド環境のインストール

以下のコマンドで、ビルド環境をインストール

~$ sudo apt install build-essential

コンパイラのバージョン確認

~$ gcc --version
gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
Copyright (C) 2017 Free Software Foundation, Inc.

デバッガのバージョン確認

~$ gdb --version
GNU gdb (Ubuntu 8.1-0ubuntu3) 8.1.0.20180409-git
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

CMakeのインストール

~$ sudo apt install cmake

CMakeのバージョン確認

~$ cmake --version
cmake version 3.10.2

CMake suite meintained and support by Kitware (kitware.com/cmake).

必要なアプリのインストール

VSCodeのインストール

以下のサイトから、.debファイルをダウンロード
https://code.visualstudio.com/
Screenshot from 2019-08-13 08-08-20.png
ダウンロードした.debファイルをGUI上でダブルクリックすれば、自動的にインストールが始まる。

エクステンションのインストール

[Ctrl+Shift+X] で"Extensions"を開き、"C/C++", "CMake", "CMake Tools"の、3つのエクステンションをインストールする。
extensions.png

ワークスペースの作成

ワークスペース(ビルドおよびデバッグを行う場所)を作成する。
ここでは例として、"home"ディリクトリ下に"cpp_cmake"ディリクトリを作成し、ワークスペースとする。

ワークスペース用ディリクトリの作成

"home"ディリクトリ下に"cpp_cmake"ディリクトリを作成する。

Shell
~$ mkdir cpp_cmake

VSCodeから開く

VSCodeのメニュー画面から、[File] -> [Open Folder]で、作成した"cpp_cmake"を開く。

ビルドおよびデバッグ環境の設定

"GCC"でビルドおよび"GDB"でデバッグできるよう、環境の設定を行う。
環境設定は、JSONファイルに記述するが、ここでは自動的に作成する。

ビルド環境ファイルの設定

  1. [Ctrl+Shift+P]で、コマンドパレットを開く。
  2. "Cmake:QuickStart"を選択。
  3. "GCC for x86_64-linux-gnu 7.4.0"を選択。
  4. プロジェクト名を求められるので、"cpp_cmake"と入力
  5. "Executable"を選択。

ここまでで、必要な設定ファイルとサンプルとなる"main.cpp"が自動生成される。

Screenshot from 2019-08-16 00-39-15.png

compile_commands.json
[
{
  "directory": "/home/ユーザー名/cpp_cmake/build",
  "command": "/usr/bin/x86_64-linux-gnu-g++-7    -g   -o CMakeFiles/cpp_cmake.dir/main.cpp.o -c /home/ユーザー名/cpp_cmake/main.cpp",
  "file": "/home/ユーザー名/cpp_cmake/main.cpp"
}
]

[Shift+F7]で、"all META"を選択すると、ビルドが開始される。

デバッグ環境ファイルの設定

GDBでバッグするための設定を行う

  1. "Main.cpp"を開き、"Break point"(F9)を設定する。 ※"Main.cpp"を開いている状態でないと、デバッグできないので注意
  2. [Ctrl+Shift+D]で、Debugウィンドウを開く。
    最初は設定がないので、"No Configulation"と表示されている。

  3. "Start Debugging"ボタンを押す。

  4. "C++(GDB/LLBB)"を選択

  5. "g++-7"を選択
    ".vscode"フォルダ下に、"launch.json"と、"tasks.json"が自動的に作成される。

"Break point"で、デバッガーが停止すれば成功。

debug.png

以下、自動生成された、"launch.json"と、"tasks.json"を記載する。
ディリクトリ構成などを変更する場合は、修正する必要がある。

launch.json
   "version": "0.2.0",
    "configurations": [
        {
            "name": "g++-7 build and debug active file",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "g++-7 build active file",
            "miDebuggerPath": "/usr/bin/gdb"
        }
    ]
}
tasks.json
{
    "tasks": [
        {
            "type": "shell",
            "label": "g++-7 build active file",
            "command": "/usr/bin/g++-7",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "options": {
                "cwd": "/usr/bin"
            }
        }
    ],
    "version": "2.0.0"
}

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
48