web-dev-qa-db-ja.com

Windows 7-「make」は内部または外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されません

Windows 7を使用して、「make」コマンドを使用しようとしましたが、「make」は内部コマンドまたは外部コマンドとして認識されません。

私はStart -> cmd -> run -> makeをしました。

'make'は、内部または外部のコマンド、操作可能なプログラム、またはバッチファイルとして認識されません。

次に、「make」(Start -> cmd -> run -> mingw32-make)ではなく「mingw32-make」と入力すると、同じ出力が得られます。

'mingw32-make'は、内部または外部のコマンド、操作可能なプログラム、またはバッチファイルとして認識されません。

この問題を解決するには、次に何をしなければなりませんか?

31
programmer

問題は、ほとんどの場合、シェルがmakeプログラムの場所を知らないことです。 「どこでも」から使用する場合は、これを行う必要があります。そうしないと、呼び出すたびに完全なパスを追加する必要があり、非常に面倒です。例えば:

"c:\program files\gnuwin32\bin\make.exe" option1=thisvalue option2=thatvalue

これは一例であり、XPではこのように見えていましたが、W7では言えません。しかし、 gnuwin32 は、Windows用の便利な「linux-world」パッケージを提供するために使用されます。プロバイダーの詳細を確認してください。

そのため、パスの入力を避けるために、PATH環境変数にパスを追加できます。 これを簡単に見つけてください 。 OSによって登録されていることを確認するには、コンソールを開いて(cmd.exeを実行)、$PATHを入力するとデフォルトパスのリストが表示されます。 makeプログラムの場所がそこにあることを確認します。

24
kebs

Windows10では、「C:\ MinGW\bin」をPathに追加し、MinGW32-make not makeを使用して呼び出して、この問題を解決しました。

14
user61871
  1. まず、MinGWがインストールされていることを確認してください。
  2. MinGWインストールマネージャーから、mingw32-makeパッケージがインストールされているかどうかを確認します。
  3. MinGW binフォルダーをPATHに追加したかどうかを確認します。コマンドラインにPATHと入力して、フォルダーを探します。または、Windows 10でControl Panel\System and Security\System --> Advanced system settings --> Environment Variables --> System Variables find Path変数に移動し、Editを選択して、存在するかどうかを確認します。追加するだけではありません!
  4. here で説明したように、任意のPATHフォルダーに新しいファイルを作成します。たとえば、MinGW binフォルダーにmingwstartup.batを作成します。行doskey make=mingw32-make.exeを内部に書き込み、保存して閉じます。
  5. regeditを実行してレジストリエディターを開きます。説明したように here in HKEY_LOCAL_MACHINEまたはHKEY_CURRENT_USERに移動して\Software\Microsoft\Command Processorに移動し、右パネルNew --> Expandable String Valueを右クリックしてAutoRunと名前を付けます。ダブルクリックして、値データとして.batファイルへのパスを入力します(例:"C:\MinGW\bin\mingwstartup.bat")。結果は次のようになります。

enter image description here

これで、新しいターミナルを開くたびにmakeコマンドがmingw32-make.exeを実行します。役に立てば幸いです。

3
Foad

Windows 8を使用しています。同じ問題が発生しました。 「C:\ MinGW\bin」というパスを「path」という名前のシステム環境変数に追加すると、機能しました。おそらく、同じことを試すことができます。それが役立つことを願っています!

1
Toothless

'make'はUNIX/Linux用のコマンドです。その代わりに、MS Windowsで「nmake」コマンドを使用します。または、CYGWINのようなエミュレーターを使用した方がよいでしょう。

1
user3649944

これは古い質問ですが、ここの答えはどれも、初心者がどれを選ぶかを選択するのに十分なコンテキストを提供しません。

makeとは何ですか?

makeは、特定の目標を達成するために実行するプログラムを決定するためにMakefileを読み取る従来のUnixユーティリティです。通常、その目標は単一のソフトウェアを構築することです。ただし、makeは、TeXソースファイルのコレクションからPDFをアセンブルしたり、Webページの各セットの最新バージョンを取得するなど、他のさまざまなタスクにも使用できるほど一般的です。

個々のターゲットに到達するためのステップをカプセル化することに加えて、makeは、すでに完了したステップを再実行することを回避することにより、処理時間を短縮します。これは、依存関係間のタイムスタンプを比較することにより行われます。 AがBに依存しているが、AがBよりも新しい場合、make Aは不要です。もちろん、これが正しく機能するためには、Makefileがそのような依存関係をすべて文書化する必要があります。

A: B
    commands to produce A from B

インデントはリテラルのタブ文字で構成する必要があることに注意してください。これは 初心者のよくある間違いです

makeの一般的なバージョン

元のmakeはかなり歩行者でした。その系統は、今日までBSD makeに続いており、そこからnmakeが派生しています。大まかに言って、このバージョンはPOSIXで定義されたmake機能を提供しますが、いくつかのマイナーな拡張とバリエーションがあります。

対照的に、GNU make大幅に拡張 形式であり、GNU Makefileが他のバージョン(または場合によってはGNU make)。そのようなファイルをGNUmakefileの代わりにMakefileを呼び出す規則がありますが、この規則は、特にGNU makede facto標準make

MakefileがGNUを使用することを示す証拠は、make規則は、変数の割り当てに:=の代わりに=を使用することです(ただし、これはGNU機能だけではありません)および$(Shell ...)$(foreach ...)$(patsubst ...)などのような多数の関数.

どちらが必要ですか?

まあ、それは本当にあなたが達成したいものに依存します。

ビルドしたいソフトウェアにvcprojファイルなどがある場合は、おそらくmakeをまったく使用せずに、代わりにそれを使用する必要があります。

一般的なケースでは、MinGW makeはWindows用のGNU makeのWindowsポートです。通常、Makefileをスローすることに対応する必要があります。

ソフトウェアがnmakeを使用するように作成されていて、既にインストール済みであるか、入手が容易な場合は、おそらくそれを使用してください。

ソフトウェアがWindows向けに作成されていない、またはWindowsに明示的に移植されていない場合、大幅な変更を加えずにコンパイルすることはほとんどありません。このシナリオでは、makeを実行することは問題の少なくとも1つであり、元のプラットフォームとWindowsの違いを十分に理解して、それを自分で実行できるようにする必要があります。

より詳細には、Makefilegrepcurl、またはyaccなどのUnixコマンドが含まれている場合、システムにもそれらのコマンドをインストールする必要があります。しかし、それとはまったく別に、異なるプラットフォーム用に作成されたCまたはC++(またはより一般的には、任意の言語のソースコード)は、Windowsではまったく動作しないか、期待どおり(多くの場合より悪い)動作しない可能性があります。

1
tripleee

既にMinGWがWindows 7にインストールされている場合は、次の手順を実行するだけです。

  1. 同じフォルダーにC:\MinGW\bin\mingw32-make.exeファイルの別のコピーを作成します。
  2. ファイル名をmingw32-make.exeからmake.exeに変更します。
  3. makeコマンドを再度実行します。

上記の手順について、ラップトップでの動作をテストしました。

0
Jerry Chong

検索機能を使用してmake.exeを検索し、見つかったらファイルへの絶対パスを書き留めます。検索結果のファイル名を右クリックしてからプロパティを右クリックするか、場所フォルダーを開きます(正確な表現はわかりませんが、英語のロケールを使用していません)。

makeを入力する代わりにコマンドラインコンソール(cmd)を開くときは、パスと名前全体を入力します。 C:\Windows\System32\Java(これはJava用です...)。

あるいは、毎回完全なパスを提供したくない場合は、次の可能性があります。

  • cdをcmdレベルで使用して、C:\Windows\System32\を現在の作業ディレクトリにします。
  • C:\Windows\System32\をPATH環境変数に追加します。

参照:

0
mins

他の回答がすでに示唆しているように、MinGWをインストールする必要があります。追加部分は、次の2つのフォルダーをPATH環境変数に追加することです。

  • C:\ MinGW\bin
  • C:\ MinGW\msys\1.0\bin

明らかに、MinGWをインストールした場所に基づいてパスを調整します。また、新しいコマンドラインターミナルを開くことを忘れないでください。

0
Tushar

windowsでcmakeの代わりにmingw32-makeを使用します

0
shubham ghosh

私のバットコード

====== admin 2として 'cmd'を実行し、 'setx'を使用します===== setx scoop "C:\ Users \%username%\ scoop"/M

echo %scoop%

setx scoopApps "%scoop%\apps" /M

echo %scoopApps%

scoop install make 

=======フェーズ3:makePath環境変数を作成する===

setx makePath "%scoopApps%/make" /M

echo %makePath%

setx makeBin "%makePath%/Bin" /M

echo %makeBin%

setx Path "%Path%;%makeBin%" /M


echo %Path%
0
小色狼