使用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 -

此錯誤表示 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\binDelete

編輯路徑變數

現在製作兩個批次文件,一個是 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

類似問答:

相關內容