
私は 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 がmake
C コンパイラ パス (つまり ) を見つけた$(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:\cygwin
2つのパスを削除します。C:\Program Files\mingw\bin
Delete
ここで、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