Wie kompiliert man Makefile mit MinGW?

Lesezeit: 5 Minuten

Benutzeravatar von AAA
AAA

Ich bin neu dabei. Ich wollte nur fragen, wie man ein Makefile kompiliert. Ich verwende den MinGW-Compiler in C-Sprache. Muss ich alle meine Dateien in MinGW\bin speichern? weil meine Dateien im Moment in einem anderen Verzeichnis sind.

Schätzen Sie die Hilfe.

  • Natürlich nicht, man sollte nicht setzen irgendetwas in mingw\bin. Was ist dein genaues Problem? (dh erkläre, was für dich fehlschlägt.)

    – Matte

    2. August 2012 um 7:10 Uhr

  • Wenn Sie ein Makefile.am haben, dann schlage ich vor, dass Sie mehr darüber lesen Automarke und autoconf.

    – Irgendein Programmierer-Typ

    2. August 2012 um 7:12 Uhr

  • ok, ich habe ein Projekt in C, das mich mein Vorgesetzter kompilieren soll. dieses Projekt enthält eine makefile.in und auch eine makefile.in. Wovon ich 0 Ahnung habe. Nach Recherchen habe ich es geschafft, den MinGW-Compiler zu installieren. Ich habe auch die Variablenumgebung und das Verzeichnis in der Eingabeaufforderung geändert, die zum Speicherort der Datei führt. Nun, kann mir jemand sagen, wie man das Projekt kompiliert? Ich weiß es wirklich zu schätzen.

    – AAA

    2. August 2012 um 8:15 Uhr


  • Hast du mingw32-make.exe installiert?

    – fragmisch

    2. August 2012 um 10:23 Uhr


  • Ich habe es gelöst, indem ich MinGW\bin\mingw32-make.exe in MinGW\bin\make.exe umbenannt habe

    – richar8086

    8. April 2017 um 11:48 Uhr


Benutzeravatar von askmish
fragenmish

Ausschnitt aus http://www.mingw.org/wiki/FAQ:

Was ist der Unterschied zwischen make und mingw32-make?

Der “nativen” (dh MSVCRT-abhängigen) Portierung von make fehlen einige Funktionen und die Funktionalität wurde aufgrund des Fehlens von POSIX auf Win32 modifiziert. Es gibt auch eine Version von make in der MSYS-Distribution, die von der MSYS-Laufzeitumgebung abhängig ist. Dieser Port funktioniert eher so, wie make es beabsichtigt hatte, und verursacht weniger Kopfschmerzen während der Ausführung. Auf dieser Grundlage entschieden die MinGW-Entwickler/Betreuer/Paketierer, dass es am besten wäre, die native Version so umzubenennen, dass sowohl die „native“ Version als auch die MSYS-Version gleichzeitig ohne Dateinamenkollision vorhanden sein könnten.

Schauen Sie also in das Verzeichnis C:\MinGW\bin und vergewissern Sie sich zuerst, was make ausführbar ist, ob Sie es installiert haben. (make.exe oder mingw32-make.exe)

Bevor Sie MinGW verwenden, sollten Sie C:\MinGW\bin hinzufügen; in die PATH-Umgebungsvariable mithilfe der unter genannten Anweisungen http://www.mingw.org/wiki/Getting_Started/

Dann cd in dein Verzeichnis, wo du das Makefile hast und Try using mingw32-make.exe makefile.in oder einfach make.exe makefile.in(abhängig von ausführbaren Dateien in C:\MinGW\bin).

Wenn Sie eine GUI-basierte Lösung wünschen, installieren Sie die DevCPP-IDE und erstellen Sie sie erneut.

  • habe gerade mingw installiert und ich habe keines im bin-Ordner.

    – Öko

    10. Februar 2015 um 22:22 Uhr

  • mingw32-make gibt es seit jahren nicht mehr! Veraltet und veraltet, und MinGW-Repo-URLs sind ein Durcheinander beim Navigieren, sie hinterlassen nur alte Repos und URLs, die seit Jahren nicht mehr verwendet wurden. Sei vorsichtig!

    – not2qubit

    14. Dezember 2018 um 8:50 Uhr

  • @ecoe stellen Sie sicher, dass Sie die richtige Version installiert haben, Sie können Folgendes versuchen: dieser Link das funktioniert bei mir mit gcc und gdb 8.1

    – H3d9

    6. Juli 2020 um 17:45 Uhr


  • Dieser FAQ-Link hat bei mir nicht funktioniert, also habe ich ihn verwendet sourceforge.net/p/mingw-w64/wiki2/FAQ

    – Doug Null

    5. April 2021 um 18:09 Uhr

Sie müssen sich aktiv für die Installation von MSYS entscheiden, um die make.exe zu erhalten. Sie sollten also immer mindestens (die native) mingw32-make.exe haben, wenn MinGW ordnungsgemäß installiert wurde. Und wenn Sie MSYS installiert haben, haben Sie make.exe (wahrscheinlich im Unterordner MSYS).

Beachten Sie, dass bei vielen Projekten zunächst ein Makefile erstellt werden muss (z. B. mithilfe eines Konfigurationsskripts oder einer Automake-.am-Datei), und dieser Schritt erfordert MSYS oder Cygwin. Man fragt sich, warum sie sich überhaupt die Mühe gemacht haben, die native Marke zu verteilen.

Sobald Sie das Makefile haben, ist unklar, ob die native ausführbare Datei ein anderes Pfadtrennzeichen als das MSYS-Make erfordert (Schrägstriche vs. Rückwärtsschrägstriche). Jedes automatisch generierte Makefile hat wahrscheinlich Pfade im Unix-Stil, vorausgesetzt, das native Make kann damit umgehen, die kompilierte Ausgabe sollte dieselbe sein.

  • Verwenden Sie Cmake für Windows, um die Makefiles zu generieren. cd in das Verzeichnis und verwenden Sie mingw32-make.exe.

    Benutzer5927645

    25. November 2020 um 6:13 Uhr

Ich habe MinGW und auch mingw32-make.exe in meinem Bin im C:\MinGW\bin . dasselbe andere Ich füge den bin-Pfad zu meinem Windows-Pfad hinzu. Danach ändere ich den Namen in make.exe . Jetzt kann ich einfach den Befehl “make” in meine Makefile-Richtung schreiben und mein Makefile genauso wie Linux ausführen.

  • Muss ich alle meine Dateien in MinGW\bin speichern? Lassen Sie Ihre Quellcode-Dateien nicht dort, wo sie sind, was Sie tun müssen, ist, dieses Verzeichnis zur “Pfad”-Variablen im Windows-Pfad hinzuzufügen, und das haben Sie bereits getan.

    – Lobito

    24. Oktober 2021 um 14:31 Uhr

Benutzeravatar von Suman Saurabh
Suman Saurabh

Überprüfen Sie zunächst, ob mingw32-make auf Ihrem System installiert ist. Verwenden Sie den Befehl mingw32-make.exe im Windows-Terminal oder cmd, um dies zu überprüfen, andernfalls installieren Sie das Paket mingw32-make-bin.

Gehen Sie dann in das standardmäßige bin-Verzeichnis (C:\MinGW\bin) und erstellen Sie eine neue Datei make.bat

@echo off
"%~dp0mingw32-make.exe" %*

Fügen Sie den obigen Inhalt hinzu und speichern Sie ihn

Setzen Sie die env-Variable in Powershell

$Env:CC="gcc"

Kompilieren Sie dann die Datei

make hello

wobei hello.c der Name des Quellcodes ist

Bitte informieren Sie sich über automake und autoconf.

Makefile.am wird von automake verarbeitet, um ein Makefile zu generieren, das von make verarbeitet wird, um Ihre Quellen zu erstellen.

http://www.gnu.org/software/automake/

  • Das heißt, ich kann die Datei nur mit Automake kompilieren?

    – AAA

    3. August 2012 um 1:14 Uhr

  • Dieser Link enthält keine Informationen, die helfen würden, das Problem des Benutzers ohne erhebliches Graben zu lösen.

    – Travis Valenti

    17. Dezember 2021 um 2:31 Uhr

Benutzeravatar von user3742309
Benutzer3742309

Ein sehr gutes Beispiel habe ich hier gefunden: https://bigcode.wordpress.com/2016/12/20/compiling-a-very-basic-mingw-windows-hello-world-executable-in-c-with-a-makefile/

Es ist ein einfaches Hello.c (Sie können c++ mit g++ anstelle von gcc verwenden), das das MinGW unter Windows verwendet.

Das Makefile sieht so aus:

EXECUTABLE = src/Main.cpp

CC = "C:\MinGW\bin\g++.exe"
LDFLAGS = -lgdi32

src = $(wildcard *.cpp)
obj = $(src:.cpp=.o)

all: myprog

myprog: $(obj)
    $(CC) -o $(EXECUTABLE) $^ $(LDFLAGS)

.PHONY: clean
clean:
    del $(obj) $(EXECUTABLE)

  • Das heißt, ich kann die Datei nur mit Automake kompilieren?

    – AAA

    3. August 2012 um 1:14 Uhr

  • Dieser Link enthält keine Informationen, die helfen würden, das Problem des Benutzers ohne erhebliches Graben zu lösen.

    – Travis Valenti

    17. Dezember 2021 um 2:31 Uhr

1416800cookie-checkWie kompiliert man Makefile mit MinGW?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy