Fehler beim Kompilieren mit dem Befehl "make"

488
Blackwood

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

/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 Paket make heruntergeladen und die Ablage dem Pfad hinzugefügt habe.

0
C: \ cygwin, das makefile.mak, meinen Sie mit seiner Include-Option dies? (CRYPTO_SUBSYSTEM = openssl include makefile-common) vor 5 Jahren 0
c: / program files / mingw / bin / gcc.exe ist kein cygwin-Compiler oder Cross-Compiler. Sie mischen Cygwin mit einem nicht Cygwin-Compiler und der funktioniert nicht. matzeri vor 5 Jahren 2
wie kann ich das beheben? weil ich sowohl cygwin als auch mingw installiert habe vor 5 Jahren 0
@Biswapriyo-Zeile 85. `$ (CC) $ (CCFLAGS) $ <-o $ @` vor 5 Jahren 0
@Biswapriyo C: \ Programme \ Gemeinsame Dateien \ Oracle \ Java \ javapath; C: \ Windows \ system32; C: \ Windows; C: \ Windows \ System32 \ Wbem; C: \ Windows \ System32 \ WindowsPowerShell \ v1. 0 \; c: / program files / mingw / bin, c: /programfiles/mingw/bin/gcc.exe; C: \ gnuwin32 \ bin, C: \ ProgramFiles \ GnuWin3 \ bin; C: \ Program Files \ GnuWin32 \ bin \ make.exe; C: \ cygwin \ bin; vor 5 Jahren 0
Ich freue mich über Ihre Hilfe vor 5 Jahren 0

1 Antwort auf die Frage

0
Biswapriyo

Der Hauptfehler wird in dieser Zeile angezeigt:

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

Dieser Fehler zeigt an, dass der Cygwin makeden C-Compilerpfad findet, dh $(CC)in C:\Program Files\mingw\bin\gcc.exe. Hier installierten OP mingw und cygwin in derselben Maschine. Wenn das entsprechende Installationsprogramm cygwin und mingw installiert, wird der /binOrdner in der %PATH%Systemumgebungsvariablen hinzugefügt . Zur Kompilierzeit makegreift der cygwin also den ersten gcc.exePfad, der sich im Verzeichnis mingw befindet, und der Fehler wird angezeigt .

Um die Pfadverwirrung zu beseitigen, muss die %PATH%Umgebungsvariable ordnungsgemäß konfiguriert werden. Weitere Informationen zum Bearbeiten von Umgebungsvariablen finden Sie unter den folgenden Links. Hier gebe ich einen einfachen Überblick. Öffnen Sie das Dialogfeld Ausführen mit Win+ R. Geben Sie control.exees ein und drücken Sie die Eingabetaste. Gehen Sie zu System und Sicherheit> System> Erweiterte Systemeinstellungen> Umgebungsvariablen> Systemvariablen> Pfad.

System_Variablen

Doppelklicken Sie auf die Variable "Path". Sie sehen ein Fenster "Umgebungsvariable bearbeiten". Löschen Sie die beiden Pfade C:\cygwinund C:\Program Files\mingw\binmit der DeleteTaste.

Edit_Path_Variable

Erstellen Sie nun zwei Batch-Dateien: cygwin.bat und mingw.bat. Es kann in einer Datei gemacht werden, ich mache es einfach. Kopieren Sie die folgenden Zeilen in die entsprechenden Stapeldateien. 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:

@ bayern6 Oh, ich habe etwas in mingw vermisst. Übrigens, in welcher Umgebung verwendest du Cygwin oder Mingw? Haben Sie in 64 Bit mingw. Biswapriyo vor 5 Jahren 0
Nicht das. Ich meine mit "make -f makefile.mak". Versuche auch andere Projekte wie Mintty in GitHub zu machen. Biswapriyo vor 5 Jahren 0
/ 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: / Programmdateien / MinGW / include "-I" c: / programmdateien / openssl / include "-I ../ utils -I. -DNO_BIT_FIELD_STRUCTURES AlgorithmCap.c -o AlgorithmCap.o make: *** [makefile.mak: 85: AlgorithmCap.o] Fehler 1 vor 5 Jahren 0
https://imgur.com/a/EAI4ID3 Pfad: C: \ Programme \ CommonFiles \ Oracle \ Java \ javapath;% SystemRoot% \ system32;% SystemRoot%;% SystemRoot% \ System32 \ Wbem;% SYSTEMROOT% \ System32 \ WindowsPowerShell \ v1.0 \ vor 5 Jahren 0
Scrollen Sie den Abschnitt der Systemvariablen nach unten. Hast du irgendwelche Pfade mit "mingw" gesehen? Wenn nicht, dann habe ich keine Ahnung. Biswapriyo vor 5 Jahren 0
nein, kein Pfad mit mingw: / vor 5 Jahren 0