このエラーが発生する理由
WindowsはUnixベースのシステムではありません。LinuxやmacOSとは異なり、デフォルトではmakeユーティリティが含まれていません。GCCのようなコンパイラをインストールしていても、makeツールが欠落していたり、mingw32-make.exeのような別のファイル名で保存されていたりすることがよくあります。ターミナルがシステムPATH内で実行ファイルを見つけられない場合、単純に処理を中断し、このエラーを表示します。
方法1:最速の解決策(Chocolateyを使用する)
Chocolateyパッケージマネージャーを使用している場合は、数秒で解決できます。ダウンロードとPATHの設定が自動的に行われます。
ターミナルを管理者として開き、以下を実行します:
choco install make
インストールサイズは非常に小さく、通常は約2.1 MBです。プロセスが完了したら、ターミナルを再起動してください。make -vと入力して、動作を確認します。
方法2:MinGW-w64を使用する
Windows上のほとんどのC++開発者は、MinGW-w64ツールチェーンを使用しています。すでにインストールされている場合は、競合を避けるために名前が異なっているだけで、ツール自体はすでに存在している可能性が高いです。
ステップ1:binフォルダを見つける
インストールディレクトリに移動します。インストール方法によりますが、パスは通常以下のいずれかのようになります:
C:\msys64\mingw64\bin(MSYS2ユーザーに最も一般的)C:\MinGW\binC:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin
ステップ2:「make」のエイリアスを作成する
そのbinフォルダの中に、mingw32-make.exeという名前のファイルがあります。これは標準のGNU Makeツールですが、Windows環境用に名前が変更されています。短いmakeコマンドを使用するには、単にmingw32-make.exeをコピーして同じフォルダに貼り付けます。そのコピーの名前をmake.exeに変更してください。
方法3:システムPATHを更新する
ファイルは存在するのにターミナルがコマンドを認識しない場合、Windowsはそのフォルダの場所を認識できていません。手動でパスを通す必要があります。
- Windowsキーを押し、「env」(または「環境変数」)と入力します。**「システム環境変数の編集」**を選択します。
- 表示されたウィンドウで、**「環境変数」**ボタンをクリックします。
- **「システム環境変数」の中から「Path」という名前の行を探します。それを選んで「編集」**をクリックします。
- **「新規」**をクリックし、
binフォルダへのフルパス(例:C:\msys64\mingw64\bin)を貼り付けます。 - 3つのウィンドウすべてで**「OK」**をクリックして、変更を保存します。
結果の確認
この手順をスキップしないでください:必ずターミナルを再起動する必要があります。環境変数はプロセスの開始時に読み込まれるため、現在開いているコマンドプロンプトやPowerShellウィンドウには変更が反映されません。
作業を確認するために、次のコマンドを実行します:
make --version
次のようなレスポンスが表示されるはずです:
GNU Make 4.4.1
Built for x86_64-w64-mingw32
Copyright (C) 1988-2023 Free Software Foundation, Inc.
よくあるトラブルシューティング
VS Codeのターミナルで依然として失敗する場合
VS Codeは環境設定をキャッシュすることで知られています。標準のコマンドプロンプトでは動作するのにVS Codeで失敗する場合は、すべてのVS Codeウィンドウを閉じて、アプリケーションを再起動してください。これにより、統合ターミナルが環境ツリーを強制的に更新します。
バージョンの競合
Git BashやStrawberry Perlなどのツールに、独自のバージョンのmakeが含まれていることがあります。ターミナルでwhere makeを実行してください。このコマンドは、Windowsが「make」実行ファイルを見つけたすべての場所をリストします。意図しないバージョンが使用されている場合は、環境変数設定に戻り、優先したいパスをリストの一番上に移動してください。
権限エラー
mingw32-make.exeの名前を変更しようとしたときに「アクセス拒否」エラーが発生した場合は、Windowsの管理者権限で操作を行っているか確認してください。C:\Program Files内のフォルダの一部は、標準ユーザーによる変更から保護されています。

