
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 make
den 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 /bin
Ordner in %PATH%
der Systemumgebungsvariable hinzu. Daher make
greift Cygwin zur Kompilierzeit auf den ersten gcc.exe
Pfad 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.exe
ein und drücken Sie die Eingabetaste. Gehen Sie zu System und Sicherheit > System > Erweiterte Systemeinstellungen > Umgebungsvariablen > Systemvariablen > Pfad.
Doppelklicken Sie auf die Variable „Path“. Sie sehen nun das Fenster „Umgebungsvariable bearbeiten“. Löschen Sie die beiden Pfade C:\cygwin
und C:\Program Files\mingw\bin
geben Sie Deleteden Schlüssel ein.
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