Ein Makefile ist eine Eingabedatei für die Build-Steuerungssprache / das Tool make. Es gibt Ziele und Abhängigkeiten zusammen mit zugehörigen Befehlen an, die zum Aktualisieren der Ziele ausgeführt werden sollen (auch als Rezepte bezeichnet).
Wie kann ich überprüfen, ob ein Programm von einem Makefile aus aufgerufen werden kann? (Das heißt, das Programm sollte im Pfad vorhanden sein oder auf andere Weise aufgerufen werden können.) Hiermit kann beispielsweise überprüft werden, welcher Compiler installiert ist. ZB so etwas wie diese Frage , aber ohne anzunehmen, dass …
target: dependencies command1 command2 Auf meinem System (Mac OS X) makescheint es erforderlich zu sein, dass Makefiles vor dem Inhalt jeder commandZeile ein Tabulatorzeichen haben , oder es wird ein Syntaxfehler ausgegeben. Dies ist ärgerlich beim Erstellen oder Bearbeiten von Makefiles, da mein Editor so eingerichtet ist, dass er immer …
Ich muss ein Verzeichnis in meinem Makefile generieren und möchte nicht immer wieder den Fehler "Verzeichnis existiert bereits" erhalten, obwohl ich ihn leicht ignorieren kann. Ich benutze hauptsächlich mingw / msys, möchte aber etwas, das auch für andere Shells / Systeme funktioniert. Ich habe es versucht, aber es hat nicht …
Wie übergebe ich ein Argument von der Kommandozeile an Makefile? Ich verstehe, dass ich es tun kann $ make action VAR="value" $ value mit Makefile VAR = "default" action: @echo $(VAR) Wie erhalte ich das folgende Verhalten? $ make action value value ? Wie wäre es mit $make action value1 …
Normalerweise übergebe ich Makrodefinitionen von "make command line" an ein "makefile" mit der Option: -Dname = value. Die Definition ist im Makefile zugänglich. Ich übergebe auch Makrodefinitionen aus dem "Makefile" an den "Quellcode" mit der ähnlichen Compileroption: -Dname = value (wird von vielen Compilern unterstützt). Auf diese Definition kann im …
Ich versuche Folgendes zu tun. Es gibt ein Programm, nennen Sie es foo-bin, das eine einzelne Eingabedatei aufnimmt und zwei Ausgabedateien generiert. Eine dumme Makefile-Regel dafür wäre: file-a.out file-b.out: input.in foo-bin input.in file-a.out file-b.out Dies bedeutet jedoch makein keiner Weise, dass beide Ziele gleichzeitig generiert werden. Das ist in Ordnung, …
Ich verstehe, dass CFLAGS (oder CXXFLAGS für C ++) für den Compiler sind, während CPPFLAGS vom Präprozessor verwendet wird. Aber ich verstehe den Unterschied immer noch nicht. Ich muss einen Include-Pfad für eine Header-Datei angeben, die in #include enthalten ist. Ist #include eine Präprozessor-Direktive? Ist der Präprozessor (CPPFLAGS) das einzige, …
Ich bin sehr neu in Makefiles und ich möchte Verzeichnisse mit Makefile erstellen. Mein Projektverzeichnis ist so +--Project +--output +--source +Testfile.cpp +Makefile Ich möchte alle Objekte und Ausgaben in den jeweiligen Ausgabeordner legen. Ich möchte eine Ordnerstruktur erstellen, die nach dem Kompilieren so aussehen würde. +--Project +--output +--debug (or release) …
Ich habe ein ziemlich großes Makefile, das eine Reihe von Zielen im laufenden Betrieb erstellt, indem Namen aus Variablen berechnet werden. (zB foo $ (VAR): $ (PREREQS)). Gibt es eine Möglichkeit, wie gnu make davon überzeugt werden kann, eine Liste von Zielen auszuspucken, nachdem diese Variablen erweitert wurden? Ich möchte …
Ich versuche, das Ergebnis von lsin anderen Befehlen (z. B. echo, rsync) zu verwenden: all: <Building, creating some .tgz files - removed for clarity> FILES = $(shell ls) echo $(FILES) Aber ich verstehe: make FILES = Makefile file1.tgz file2.tgz file3.tgz make: FILES: No such file or directory make: *** [all] …
Angenommen, ich habe ein Makefile mit der Regel %.o: %.c gcc -Wall -Iinclude ... Ich möchte, dass * .o neu erstellt wird, wenn sich eine Header-Datei ändert. Anstatt eine Liste von Abhängigkeiten zu erstellen /include, müssen alle Objekte im Verzeichnis neu erstellt werden, wenn sich eine Header-Datei ändert. Ich kann …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.