
我正在研究 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 -
此錯誤表示 cygwinmake
找到了 C 編譯器路徑,$(CC)
即C:\Program Files\mingw\bin\gcc.exe
.這裡OP在同一台機器上安裝了mingw和cygwin。當對應的安裝程式安裝 cygwin 和 mingw 時,它會/bin
在%PATH%
系統環境變數中新增該資料夾。因此,在編譯時,cygwinmake
會取得 mingw 目錄中的第一個gcc.exe
路徑,並顯示錯誤。
為了消除路徑混亂,%PATH%
需要正確配置環境變數。在以下連結中查找有關如何編輯環境變數的更多詳細資訊。這裡我給一個簡單的提綱。使用Win+開啟“執行”對話框R。輸入control.exe
並按 Enter 鍵。前往系統與安全性 > 系統 > 進階系統設定 > 環境變數 > 系統變數 > 路徑。
雙擊“路徑”變數。您可以看到一個視窗「編輯環境變數」。用key刪除兩條路徑C:\cygwin
和。C:\Program Files\mingw\bin
Delete
現在製作兩個批次文件,一個是 cygwin.bat ,一個是 mingw.bat。可以在一個文件中完成,我只是簡單一點。將以下行複製到對應的批次檔中。這些命令將配置編譯環境。
- 對於賽格溫:
@echo off
C:
chdir C:\cygwin\bin
C:\cygwin\bin\bash.exe --login -i
- 對明格來說:
@echo off
set PATH=C:\Program Files\mingw\bin;%PATH%
cmd /k