Cのコンパイル(OpenGL)(MinGW)

#注意VScodeでデバッグできないです
更新中

## 動作環境
* Windows 10 Pro
    * バージョン 1809
    * OSビルド 17763.1217
* Visual Studio Code
    * バージョン: 1.45.1 (user setup)
    * 日付: 2020-05-14T08:27:35.169Z

## 1.準備するもの
### [MinGW(gcc)](http://www.mingw.org/download/installer/)
![](https://i.imgur.com/rHIkPN8.png)

### [Freeglut](https://www.transmissionzero.co.uk/software/freeglut-devel/)
![](https://i.imgur.com/j7fgm1g.png)


### [Visual Studio Code](https://code.visualstudio.com/download)
![](https://i.imgur.com/fGrMUfp.png)

### ダウンロードしたもの
![](https://i.imgur.com/xA7eLTb.png)

## 2.インストール
### MinGW

![](https://i.imgur.com/4nM94lZ.jpg)

**「Install」** をクリック

![](https://i.imgur.com/13Hyl9O.png)
**「Continue」** を2回クリック

![](https://i.imgur.com/wFCqMMf.png)
* mingw32-base-bin
* mingw32-gcc-g++ -bin

の2つをクリックして **「Mark for Installation」** をクリック

上部メニューの **「Installtion」** から **「Apply Changes」** をクリック

そして **「Apply」** をクリック

**「Close」** が出現したらをクリックして **MinGW(gcc)** のインストールは終了

---

### Freeglut


![](https://i.imgur.com/1sfde9u.png)

**「エクスプローラー」** から **「PC」** → **「ローカルディスクC」** をクリック 

> ※MinGWをインストールしたディスクがCではない場合はMinGWをインストールしたディスクを選択してください

![](https://i.imgur.com/uxyKALx.png)

**「MinGW」** をクリック

![](https://i.imgur.com/S7P4AZw.png)
**「MinGW」** のフォルダに先程ダウンロードした **「Freeglut」** 内の以下3つを移動
* 「bin」
* 「include」
* 「lib」 

**Freeglut** は終了

---

### Visual Studio Code
![](https://i.imgur.com/Tuxv67W.png)

**「同意する(A)」** を選択して **「次へ(N)」** をクリック

![](https://i.imgur.com/auNuXSZ.png)

下4つを選択して **「次へ(N)」** をクリック

![](https://i.imgur.com/5JehAyV.png)
そして **「インストール(I)」** をクリックして **「完了(F)」** をクリック

**Visual Studio Code** のインストールは終了

## 3.パスを通す
**［Windows］** ＋ **［Pause］** キーを押して **[システム]** を開く

> ※ **[Pause]** キーがわからない方はコントロールパネルを開き， **[システムとセキュリティ]** → **[システム]** 

![](https://i.imgur.com/qyTxfDJ.png)
左側の **「システムの詳細設定」** をクリック

![](https://i.imgur.com/GjrRw1W.png)

**「環境変数(N)...」** をクリック

![](https://i.imgur.com/GZTzuj6.png)
**「システム環境変数(S)」** の **「Path」** を選択して **「編集(I)...」** をクリック

![](https://i.imgur.com/CzHlAMG.png)
右上の **「新規(N)」** から
> C:\MinGW\bin

を追加して **「OK」** を3回クリックしてください

> ※MinGWをCディスクにインストールしていない場合はCの部分を適宜変更してください


![](https://i.imgur.com/7esqibP.png)
確認のため **「コマンドプロンプト」** に **「gcc」** と入力

画像のように **「gcc: <span style="color: red; ">fatal error:</span> no input files
compilation terminated.」** と出れば終了

> ※ **「'gcc' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」** と表示される場合は **「windows10 パスが通らない」** などで検索してください

## 4.コンパイルする
![](https://i.imgur.com/MMIOghN.png)

 <span style="color: red; "> **英語** </span>で新規フォルダーを作成

>※英語名なら何でも大丈夫です
>
>※フォルダーの場所はどこでも大丈夫です
>
>※ドキュメントに作りました

![](https://i.imgur.com/0uDlUrP.png)

Cのファイルを作成したファイルにコピーします
>※私の大学の場合配布されている **「myShape.h」** も一緒にコピーします

コマンドプロンプトを開き
![](https://i.imgur.com/ZsritfE.png)
`cd Documents\vscode_gcc`と入力
> ※`cd 作成した場所\作成したファイル名`

![](https://i.imgur.com/rr5WEca.png)
`gcc test.c -lfreeglut -lglu32 -lopengl32`と入力
> ※`gcc ファイル名.c -lfreeglut -lglu32 -lopengl32`
> 
`a`と入力すると実行できる

## 5.Visual Studio Codeでコンパイルする(デバッグ)
Visual Studio Codeを開く

![](https://i.imgur.com/UlTy3nt.png)
上部の **「ファイル(F)」** から **「フォルダーを開く...」** をクリック

![](https://i.imgur.com/nBCBAv6.png)
先程作成したフォルダーを選択

![](https://i.imgur.com/kKXe3wN.png)
> ※上記のようになっていれば大丈夫です

![](https://i.imgur.com/jdGj9Tt.png)
左のタブから **「拡張機能」** をクリック
> ※四角いブロックのアイコン

検索ボックスに **「C」** を入力して **「C/C++」** を選択

右の緑色の **「インストール」** をクリック

![](https://i.imgur.com/8oC4nXz.png)
インストールが終了したらメニューバーで **「実行( R )」** から **「デバッグの開始」** をクリック

![](https://i.imgur.com/5bJjXRl.png)
**「C++(GDB/LLDB)」** をクリック

**「launch.json」** が開いたら

* `"program": "プログラム名を入力してください (例: ${workspaceFolder}/a.exe)"`
* `"miDebuggerPath": "/path/to/gdb"`

を

* `"program": "${workspaceFolder}/a.exe"`
* `"miDebuggerPath": "C:/MinGW/bin/gdb.exe"`

に変更

```jsonld:launch.json=
{
    // IntelliSense を使用して利用可能な属性を学べます。
    // 既存の属性の説明をホバーして表示します。
    // 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 起動",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/a.exe",//ここ
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "C:/MinGW/bin/gdb.exe",//ここ
            "setupCommands": [
                {
                    "description": "gdb の再フォーマットを有効にする",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}
```
![](https://i.imgur.com/i6op4wC.png)
上部メニューの **「表示(V)」** から **「コマンドパレット...」**をクリック

![](https://i.imgur.com/rQGfWoC.png)

`>C/++: 構成の編集(UI)`と入力

![](https://i.imgur.com/XGWoGVV.png)

**「構成の追加」** をクリック

![](https://i.imgur.com/xuK70Qd.png)
名前を **「gcc」** にして **「OK」** をクリック

![](https://i.imgur.com/SZ7jjGa.png)
コンパイラパスの右の下矢印をクリックして， **「C:/MinGW/bin/gcc.exe」** をクリック

![](https://i.imgur.com/ymxkkXp.png)
コンパイラ引数に下記の3つを追加

`-lfreeglut`
`-lglu32`
`-lopengl32`

![](https://i.imgur.com/c6cPWLZ.png)
IntelliSenseモードを **「gcc-x64」** に選択

![](https://i.imgur.com/ZzyzIcB.png)
上記メニューの **「実行(R)」** から **「デバッグの開始」** をクリック

![](https://i.imgur.com/QLKkjRx.png)
実行されたら成功

# ※デバッグしてもexeファイルが変化しません※