makeコマンドでコンパイルできませんでした

makeコマンドでコンパイルできませんでした

私は cygwin で作業しています。ほとんどの Unix コマンドは問題なく動作します。また、g++ と gcc でコンパイルできますが、make を実行すると以下のエラーが発生します。

/cygdrive/b/tpm/src
$ make -f makefile.mak
"c:/program files/mingw/bin/gcc.exe" -Wall -Wnested-externs -ggdb -O0 -c - 
DTPM_WINDOWS -I"c:/program files/MinGW/include" -I"c:/program 
files/openssl/include" -I../utils -I. -DNO_BIT_FIELD_STRUCTURES AlgorithmCap.c -o AlgorithmCap.o
make: *** [makefile.mak:85: AlgorithmCap.o] Error 1

make パッケージをダウンロードし、bin をパスに追加したことに注意してください。

答え1

主なエラーは次の行に表示されます。

$ make -f makefile.mak "c:/program files/mingw/bin/gcc.exe" -Wall -Wnested-externs -ggdb -O0 -c -

このエラーは、cygwin がmakeC コンパイラ パス (つまり ) を見つけた$(CC)ことを示していますC:\Program Files\mingw\bin\gcc.exe。ここで、OP は mingw と cygwin の両方を同じマシンにインストールしました。対応するインストーラーが cygwin と mingw をインストールすると、システム環境変数/binにフォルダーが追加されます%PATH%。そのため、コンパイル時に、cygwin はmingw ディレクトリにあるmake最初のgcc.exeパスを取得し、エラーが表示されます。

パスの混乱を解消するには、%PATH%環境変数を適切に構成する必要があります。環境変数の編集方法の詳細については、以下のリンクを参照してください。ここでは簡単な概要を示します。Win+で [実行] ダイアログ ボックスを開きますR。入力しcontrol.exeて Enter キーを押します。[システムとセキュリティ] > [システム] > [システムの詳細設定] > [環境変数] > [システム変数] > [パス] に移動します。

システム変数

「Path」変数をダブルクリックします。「環境変数の編集」ウィンドウが表示されます。キーを使用してC:\cygwin2つのパスを削除します。C:\Program Files\mingw\binDelete

パス変数の編集

ここで、cygwin.bat と mingw.bat の 2 つのバッチ ファイルを作成します。これは 1 つのファイルで実行できますが、ここでは単純にします。対応するバッチ ファイルに次の行をコピーします。コマンドはコンパイル環境を構成します。

  • cygwinの場合:
@echo off
C:
chdir C:\cygwin\bin
C:\cygwin\bin\bash.exe --login -i
  • mingwの場合:
@echo off
set PATH=C:\Program Files\mingw\bin;%PATH%
cmd /k

類似のQ&A:

関連情報