Kompilierung mit Make-Befehl fehlgeschlagen

Kompilierung mit Make-Befehl fehlgeschlagen

Ich arbeite mit Cygwin. Die meisten Unix-Befehle funktionieren einwandfrei. Ich kann auch mit g++ und gcc kompilieren, aber ich erhalte den folgenden Fehler, wenn ich make ausführe:

/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

Beachten Sie, dass ich das Make-Paket heruntergeladen und den Bin zum Pfad hinzugefügt habe.

Antwort1

Der Hauptfehler wird in dieser Zeile angezeigt:

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

Dieser Fehler zeigt, dass Cygwin makeden C-Compilerpfad findet, d. h. $(CC)in C:\Program Files\mingw\bin\gcc.exe. Hier hat OP sowohl Mingw als auch Cygwin auf derselben Maschine installiert. Wenn das entsprechende Installationsprogramm Cygwin und Mingw installiert, fügt es den /binOrdner in %PATH%der Systemumgebungsvariable hinzu. Daher makegreift Cygwin zur Kompilierzeit auf den ersten gcc.exePfad zu, der sich im Mingw-Verzeichnis befindet, und der Fehler wird angezeigt.

Um die Pfadverwirrung zu beseitigen, %PATH%muss die Umgebungsvariable richtig konfiguriert werden. Weitere Einzelheiten zum Bearbeiten von Umgebungsvariablen finden Sie in den folgenden Links. Hier gebe ich eine einfache Übersicht. Öffnen Sie das Dialogfeld „Ausführen“ mit Win+ R. Geben Sie den Text control.exeein und drücken Sie die Eingabetaste. Gehen Sie zu System und Sicherheit > System > Erweiterte Systemeinstellungen > Umgebungsvariablen > Systemvariablen > Pfad.

Systemvariablen

Doppelklicken Sie auf die Variable „Path“. Sie sehen nun das Fenster „Umgebungsvariable bearbeiten“. Löschen Sie die beiden Pfade C:\cygwinund C:\Program Files\mingw\bingeben Sie Deleteden Schlüssel ein.

Pfadvariable bearbeiten

Erstellen Sie nun zwei Batchdateien, eine cygwin.bat und eine mingw.bat. Dies kann in einer Datei erfolgen, ich mache es einfach. Kopieren Sie die folgenden Zeilen in die entsprechenden Batchdateien. Die Befehle konfigurieren die Umgebung zum Kompilieren.

  • Für Cygwin:
@echo off
C:
chdir C:\cygwin\bin
C:\cygwin\bin\bash.exe --login -i
  • Für mingw:
@echo off
set PATH=C:\Program Files\mingw\bin;%PATH%
cmd /k

Ähnliche Fragen und Antworten:

verwandte Informationen