【初心者向け】UbuntuでVisual Studio Codeを使って C/C++ 言語で Hello, World するまでの手順を紹介する

# この記事の概要
Visual Studio Code(VSCode)のLinux版でC/C++の開発環境を構築して"Hello, world"を表示するまでの手順を紹介します。
ワンステップずつ紹介するので、つまづきづらいです。初心者向けです。簡単にC/C++の開発環境を構築したい方、学校でC/C++を勉強している方向けの設定方法です。

最初から設定する方は、「01. VSCodeのダウンロード」から。プロジェクトだけ新たに作る方は、「05. 新規プロジェクトの作成」から、ファイルの追加・削除については「07. ソースコードのファイルを変更する」から覧ください。

# 参考にした記事
執筆にあたっては、下記の記事を参考にさせていただきました。
- https://qiita.com/grgrjnjn/items/85aa7cab1475bf1aea54
- https://qiita.com/CamouflageSix/items/9133b2981e8b6e1f1548

# 環境
- OS: Ubuntu 20.04 LTS 日本語

# 手順
##01. VSCodeのダウンロード
Ubuntu内のブラウザ(firefoxでよい)で下記URLからVSCodeの.debファイルをダウンロードする。
```
https://code.visualstudio.com/
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126400/20f64285-0565-5065-bbcc-4aaa0b7bb8f8.png)

今回はUbuntuで使うので、下記のアイコンをクリックしてダウンロードします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126400/3da998b7-7ff0-b998-43c8-3eb241b191ca.png)

ダウンロードするか問い合わせされるので、[Save File]を選択して[OK]を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126400/2bb67bc8-b4a6-8a0e-4e32-bc0867c4c462.png)

ファイルがダウンロードされます。端末(Terminal)を起動して確認してください。

```
$ ls
ダウンロード  デスクトップ  ビデオ    ミュージック
テンプレート  ドキュメント  ピクチャ  公開
$ cd ダウンロード/
$ ls
code_1.52.1-1608136922_amd64.deb
$
```

## 02.他に必要なパッケージをインストール
GCCのコンパイル・ビルドに必要となる"build-essential"とmakeを取り扱う"cmake"、その他必要なパッケージをインストールします。
```
$ sudo apt update
$ sudo apt install -y build-essential
$ sudo apt install -y cmake
$ sudo apt install -y apt-transport-https
```

## 03. VSCodeをインストール

ダウンロードしたファイルは、ログインユーザのホームフォルダの下にある"ダウンロード"にあります。

```
$ cd
$ ls
ダウンロード  デスクトップ  ビデオ    ミュージック
テンプレート  ドキュメント  ピクチャ  公開
$ cd ダウンロード/
$ ls
code_1.52.1-1608136922_amd64.deb
```

続いて、VSCodeと"apt-transport-https"パッケージをインストールする。

```
$ sudo apt install ./code_1.52.1-1608136922_amd64.deb 
```

インストールできたら、"code"コマンドでVSCodeを起動できます。


```
$ cd
$ code
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126400/fc677ed2-fa28-1310-d5f7-2b641c23be4c.png)

## 04. VSCodeの設定
VSCodeにエクステンションを適用する。
インストールするエクステンションは"C/C++"、"CMake"、"CMake Tools"の3つ。
まず、"C/C++"エクステンションをインストールする。

メニューを開く: [View]->[Extensions]
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126400/65b1ee8a-58ce-870c-dd9d-5fd4fa11b853.png)


テキストボックスに"C/C++"と入力して、[C/C++]エクステンションを検索する。
[Install]をクリックするとこのプラグインがインストールされる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126400/889a1303-b35b-3b11-735e-120488a47e53.png)

続いて、[CMake]をインストールする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126400/3772683b-851a-e416-f0c0-dfd6abec2e71.png)

続いて、[CMake Tools]をインストールする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126400/d256fd39-9ef1-9dc3-26a2-fe01d469a74a.png)

## 05. 新規プロジェクトの作成
C/C++のプログラムはプロジェクト単位で作成していきます。プロジェクトはフォルダごとに作っていきます。
まずはフォルダを作成して、そのフォルダに対して様々な設定をしていきます。

フォルダを作成する。フォルダは"develop/hello"("develop"の下に"hello"というフォルダを作る)とする。

```
$ cd
$ mkdir -p develop/hello
```

VSCodeで、作成したプロジェクトフォルダを開く。
メニューを開く: [File] -> [Open Folder…]
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126400/9a66df79-5d96-7243-3cd3-6500b012ca9d.png)

[Open Folder]ウィンドウで、先ほど作成したフォルダ"develop/hello"を選択して[OK]を押す。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126400/0c0122f3-492a-d612-6726-f6a1fc478461.png)

指定したプロジェクトフォルダが開かれる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126400/401511d7-3c0f-eeef-f324-c3604cf411c5.png)


これからは、ビルドとデバッグの設定をしていく。
コマンドパレットを開く。メニュー: [View]->[Command Palette]
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126400/05954b56-f452-136d-6b19-bc495873f765.png)


コマンドパレットの入力欄が画面上部に現れる。[CMake: Quick Start]を選択する。テキストボックスに"CMake"と入力すると、候補が絞られる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126400/a45d6f8a-827d-8b0a-e5cf-600585bc868d.png)

選択すると、画面右下に[プロジェクト…を構成しますか？]、[プロジェクトを開いたときに常に構成しますか？]と次々に表示されるので、[はい] を選択する。もたもたしていると閉じてしまうようなので、早めに押すこと。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126400/dd30c618-e68b-ff95-b1d7-19e7f50146a6.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126400/d1ddaa02-0a8f-1cbe-b9cd-b8ed054f81d4.png)

続いて、"GCC for x86-linux-gnu xxxx"(xxxxはバージョンにより異なる)を選択する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126400/ec5b7e1a-1e3b-ffe0-9baf-63473b7659d5.png)

※もしここで[GCC for x86...]が出てこなければ、Command Paletteに再び"CMake"と入力し、[CMake: Quick Start]を選択したあとに"GCC for x86…"を選択する。



"GCC for x86…"を選択したあと、右下に[CMake…が見つかりません。どのように続行しますか。]と出てくるので、[作成]を押す。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126400/d15f2c87-2f18-dfb2-6f4b-cfbaba35dadb.png)


画面上部に、[新しいプロジェクトの名前を入力してください]と表示されるので、プロジェクト名として"hello"を入力する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126400/c0efbdab-b3e2-2439-5528-84cf506e5d90.png)

続いて、[Executable 実行可能ファイルの作成]を選択する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126400/6bff7f2b-cdca-f979-532d-d66fe6610b1d.png)

右下に[CMake Tools がこのフォルダに…作成しようとしています]のように表示されるので、[許可する]を選択する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126400/af5f2353-20be-38cb-7371-6667885ae19f.png)

必要なファイルが生成されていく。
画面左側にファイルの一覧が表示される。[main.cpp]をダブルクリックすると、サンプルのソースコードが表示される。[main.cpp]が表示されない場合は、画面左上の をクリックすると一覧が表示される。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126400/bed177fd-4ea6-e629-2e9e-52f353237894.png)

## 06 .プログラムを実行する
プログラムを実行すには、F5キーを押すか、[Run]->[Start Debugging]のメニューを選択する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126400/38d0ba4c-307c-3d1f-dcce-e99c3a5ce9b6.png)

画面上部に選択肢が表示されるので[C++(GDB/LLDB)]を選択する。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126400/032f0972-44e8-b2ac-8a21-d69c8816a55f.png)


続いて、[g++ 9 アクティブファイルの…]を選択する。(数字は異なる場合がある)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126400/56e14ba6-8acb-640d-2f55-01113be95558.png)

デバッグが開始される。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126400/12b10450-d349-ad74-1652-f8156b6534a3.png)


画面下部の[TERMINAL]を選択すると、プログラムの実行結果が表示される。"Hello, world!"と表示されているのが確認できる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126400/c7447fd4-d026-1ece-d547-ea29d6050348.png)

## 07. ソースコードのファイルを変更する
サンプルのソースコードを削除して、新しいファイルを作成してデバッグを行うことにする。

画面左側の、下記のアイコンをクリックすると、ファイルの一覧に戻ることができる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126400/a53e4374-7b21-ae0b-902c-a8f4b9331242.png)
[main.cpp]を選択したあと、右クリックして[Delete]を選択すると、ファイルを削除することができる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126400/807303ab-93d6-360b-91b8-7cf61031d6a2.png)

削除の確認が表示される。[Move to Trash]を選択する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126400/7b8d7bd1-abcc-d963-aeb9-d11fb44cadbf.png)

新しいソースファイルを作成する。ファイルの何も書かれていないところを右クリックして[New File]を選択する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126400/21c6fc21-ef20-059f-3c26-d11704742ec0.png)

ファイル名を入力する。ファイル名は[helloworld.c]とする。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126400/7d89b565-3ff1-d7dc-3087-16ca0c12e602.png)


ファイルが作成されたら、コードを入力する。
コードは次の通りとする。

```
#include <stdio.h>

int main(void){
    printf("Hello, Visual Studio Code\n");

    return(0);
}
```

コードを入力すると、コード補完される。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126400/fa9d72d1-5265-9f74-c096-29297e9b50ff.png)


F5を押すか、[Run]->[Start Debugging]を選択すると、デバッグが開始されて結果がTERMINALに表示される。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126400/96e10513-ed3d-85bf-6d55-1521e93f2e5c.png)


続いて、コードを次のように変更していく。

```
#include <stdio.h>

int main(void){
    int val;
    printf("Hello, Visual Studio Code\n");

    printf("input value: ");
    scanf("%d", &val);

    printf("value is %d\n", val);

    return(0);
}

```


F5を押すか、[Run]->[Start Debugging]を選択すると、デバッグが開始されて結果がTERMINALに表示される。scanf()の入力もTERMINAL上で直接入力できる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126400/32130399-45ca-6170-19cc-7bad9cf45ff3.png)


## 08. プロジェクト関連ファイルはどこにあるのか
これらのファイルは、最初に作成したプロジェクトのフォルダに格納されている。
端末を開いてこれらのファイルを確認する。

```
$ cd
$ cd develop/hello
$ ls
CMakeLists.txt  build  helloworld  helloworld.c  main
```

ソースコードファイルのファイル名を変更すると、Visual Studio Codeにも反映される。

```
$ mv helloworld.c helloworld2.c
$ ls 
CMakeLists.txt  build  helloworld  helloworld2.c  main

```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/126400/f389f8bd-5715-405e-8cac-883e195a334b.png)

//////以上