【初心者向け】Windows11でgccを使えるようにする（2024.11現在）

万年初心者の備忘録です。
今回は、C、C++のコンパイラを使えるようにする方法について。


# ダウンロード
Windows11にMinGW-w64をインストールすることで、コンパイラであるGCCを使えるようになります。

MinGW-W64-binariesをインストール：https://github.com/niXman/mingw-builds-binaries


![gcc_installer.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3921527/7f2b2b71-3d74-2e53-7f57-b3b264446cbb.png)

画像内：矢印のリンクをクリックすると、インストーラがダウンロードできます。


# インストール
ここからは、重要なところ以外はサクサク行きます。

ダウンロードした.exeファイルを起動すると、以下のような画面が起動します。

![gcc01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3921527/832bf2e5-51fd-1122-0aa1-0b6c02667153.png)
↑ Nextをクリック

![gcc02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3921527/7dbcd0a9-f888-d004-51be-f3539d59d49d.png)
↑ デフォルトのままNextをクリック

![gcc03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3921527/cd2cec50-2f8c-6e0a-4501-d23a03d2d003.png)
↑ 64bitを選択し、Nextをクリック

:::note info
特に理由がない限り、64bitを選択してください。
:::

![gcc04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3921527/5e55000a-d00e-ab4d-a19a-3d5d762b6dab.png)
↑ デフォルトのままNextをクリック

![gcc05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3921527/1e5a2bf7-b7e3-2172-75c3-23a38e5b7229.png)
↑ デフォルトのままNextをクリック

![gcc06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3921527/4dd9d6cc-6f1e-5082-695e-6d2dc631621a.png)
↑ デフォルトのままNextをクリック

![gcc07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3921527/c3d92308-b520-35a6-1bc1-69a7322ccf13.png)
↑重要。STOP

:::note warn
ここが一番重要です。
ここはデフォルトのままでもいいですが、必ず ***C:/ などから始まるアドレスをコピー＆ペースト*** でメモ帳などに写しておいてください。
:::

このあとの動作確認、PATHを通すときに使います。

### 補足

<details><summary>ここって何してるの？</summary>


MinGW-W64そのものを入れておく場所（ディレクトリ）を決めています。
あとで「使いたいからどこに入れたのか教えて！」となるのです。これをPCに教える作業が「PATHを通す」です。

</details>

# 動作確認
ひとまず、うまくMinGW-w64をインストールできたか確認します。

### コマンドプロンプトを起動する

![win11_taskbar.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3921527/c447925e-5c29-ab8a-f827-bf4f2ddd590c.png)

1. ↑のwindowsマークを押します
2. 「アプリ・検索・ドキュメントの検索」バーに「コマンドプロンプト」と入力します
3. コマンドプロンプトを起動します

もしくは
1. WindowsキーとRキーを同時に押す
2. cmdと入力してOKボタンを押す

でもコマンドプロンプトが起動します。

### ディレクトリを移動する

![cmd.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3921527/c077a352-9552-f450-2f0e-2c9db3b5e883.png)

上のような真っ黒な画面（コマンドプロンプト）が開きました。
次は、コマンドプロンプト上でMinGW-w64が入っている場所（ディレクトリ）まで移動します。
（例1、例2を参照ください）

:::note info
ここで、メモ帳に写しておいたアドレスを使います。
:::

<details><summary>例1を開く</summary>

+ ```C:\Users\tenn\apps```というアドレスにMinGW-w64をインストールした(メモ帳には```C:\Users\tenn\apps```と書いてある)
+ コマンドプロンプトには、```C:\Users\tenn>```とかいてある

このようなとき、以下の手順でコマンドプロンプトに入力します。

1. ```cd apps``` + Enter
2. ```cd mingw64\bin``` + Enter

これで、MinGW-w64が入っている場所（ディレクトリ）まで移動できました。
</details>


<details><summary>例2を開く</summary>

+ ```C:\Users\tenn\apps```というアドレスにMinGW-w64をインストールした (メモ帳には```C:\Users\tenn\apps```と書いてある)
+ コマンドプロンプトには、```C:\>```と書いてある

このようなとき、以下の手順でコマンドプロンプトに入力します。

1. ```cd Users\tenn\apps``` + Enter
2. ```cd mingw64\bin``` + Enter

これで、MinGW-w64が入っている場所（ディレクトリ）まで移動できました。
</details>

### 確認（バージョンチェック）
ディレクトリの移動は正しくできましたか？
**メモ帳にコピー＆ペーストしたアドレス**と、**コマンドプロンプトの左側のアドレス**が一致すればOKです。

:::note info
\（バックスラッシュ）と￥（円マーク）は同じ意味です。どちらが表示されていても大丈夫です。
:::

ここまでできたら、バージョンの確認をします。

コマンドプロンプトに、```gcc -v```と入力します。

![cmd_versioncheck.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3921527/8d86a71d-abe0-a5f7-1817-cacdf6441a38.png)
画像のようにバージョンが表示されたらOKです。
無事、MinGW-w64をインストールできていることが確認できました！

# PATHを通す
:::note warn
ここまでで、ひとまずコンパイラをPCに入れることができました。
しかし、**PATHを通さないと、コンパイラは使えません。**
:::

あと少し、頑張りましょう。


![PATH_1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3921527/ba21c9f8-8bfe-f268-b949-1786d5d366ea.png)


**1.PCの設定を開く
2.システム をクリック
3.バージョン情報をクリック**

![PATH_2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3921527/2a640403-aeb9-82f8-3e2b-b72806297de5.png)

**4.システムの詳細設定をクリック**

![PATH_3.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3921527/6eb5c83f-c18e-461c-cb2d-9a24e02616f9.png)

**5.環境変数をクリック**

![PATH_4.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3921527/e2827dff-dc7b-0ea0-b667-8e29fa0298ea.png)

**6.「システム環境変数」内の「Path」を選択
7.編集をクリック**

![PATH_5.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3921527/f371666b-4645-8821-292c-c9292e82aaa1.png)

**8.新規をクリック**
**9.PATHを追加する**

:::note info
ここで入力するPATHは、
```メモ帳のアドレス\mingw64\bin```
:::

例えば
```C:\Users\tenn\apps```というアドレスにMinGW-w64をインストールした (メモ帳に```C:\Users\tenn\apps```と書いてある)場合、```C:\Users\apps\mingw64\bin```と入力します。


**10.OKをクリック**

# 動作確認
ここまでで、どの場所（ディレクトリ）からでもGCCコンパイラを呼び出せるようになりました。
試しに、テストコードをコンパイルしてみましょう。

```C:HelloWorld.c
#include <stdio.h>
int main(){
    printf("Hello World.\n");
    
    return 0;
}
```
このコードを「HelloWorld.c」という名前のファイルに貼り付けます。

![test1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3921527/43133abf-3919-aaf2-a246-87c5cc32954e.png)


↑メモ帳に貼り付け、名前を付けて保存した状態。
HelloWorld.c.txtなどにならないように注意。

次に、コマンドプロンプトを起動し、「HelloWorld.c」を保存した場所までディレクトリを移動します。

<details open><summary>例</summary>

「HelloWorld.c」を、
C:(ホームディレクトリ）の中にあるDocumentsフォルダの中にあるCprogramというフォルダの中に保存したとします。
このアドレスは```C:\Documents\Cprogram```です。

コマンドプロンプトの左側に　```C:\```と書いてあるとき、```cd Documents\Cprogram```とコマンドプロンプトに入力すれば、「HelloWorld.c」のあるディレクトリに移動できます。

</details>

## コンパイル＆実行
ここまでできたら、コマンドプロンプトに
```gcc -Wall -o helloworld HelloWorld.c```と入力してみましょう。
何も表示されず次の行に移行したら、コンパイル成功です。

ためしに、```.\helloworld```として実行してみましょう。
```Hello World.```と表示されれば、きちんと環境構築ができています！

![test02.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3921527/960ce3b4-d888-4521-ea7d-fcc6ff8b86a5.png)


<details><summary>gcc -Wall...って何？（補足）</summary>

```gcc -Wall -o helloworld HelloWorld.c```は、次の要素から成ります。

+ **gcc** : Cのファイルをコンパイルするよ
+ **-Wall** : ~~コンパイルできれば良いので、余計な警告は出さないでね~~
↑正しくは、「警告を増やしてね」といった意味です。
コメントにてご指摘をいただきました。ありがとうございます！
+ **-o helloworld** : 実行ファイルはhelloworld.exeという名前にしてください
+ **HelloWorld.c** : このディレクトリ内の、Helloworld.cという名前のファイルをコンパイルしてね

</details>

# おわりに
C/C++の環境構築、めちゃめちゃ苦労しました。
初心者なのに最初が一番大変ってどういうことですか、って言いたくなります。
これから環境構築する方は、ぜひ参考にしてください。