EnglischFranzösischSpanisch

Ad


OnWorks-Favicon

makedepend – Online in der Cloud

Führen Sie makedepend im kostenlosen Hosting-Anbieter OnWorks über Ubuntu Online, Fedora Online, den Windows-Online-Emulator oder den MAC OS-Online-Emulator aus

Dies ist der Befehl makedepend, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann

PROGRAMM:

NAME/FUNKTION


makedepend – Abhängigkeiten in Makefiles erstellen

ZUSAMMENFASSUNG


abhängig machen [ -DName=def ] [ -DName ] [ -Ienthaltenir ] [ -Yenthaltenir ] [ -a ] [ -fMakefile
] [ -einschließen Datei ] [ -oobjsuffix ] [ -pobjprefix ] [ -sSchnur ] [ -wBreite ] [ -v ] [ -m ]
[ -- andere Optionen -- ] Quelldatei ...

BESCHREIBUNG


Das abhängig machen Programm liest jeden Quelldatei nacheinander und analysiert es wie ein C-
Präprozessor, alles verarbeiten #enthalten, #definieren, #undef, #ifdef, #ifndef, #endif, #Wenn,
#elif und #else Anweisungen, damit es richtig erkennen kann, welche #enthalten, Richtlinien würden
in einer Zusammenstellung verwendet werden. Beliebig #enthalten, Direktiven können auf Dateien verweisen, die andere haben
#einschließen Anweisungen, und das Parsen erfolgt auch in diesen Dateien.

Jede Datei, die a Quelldatei beinhaltet, direkt oder indirekt, ist was abhängig machen ruft a
Abhängigkeit. Diese Abhängigkeiten werden dann in eine geschrieben Makefile Sodass um(1)
wird wissen, welche Objektdateien neu kompiliert werden müssen, wenn sich eine Abhängigkeit geändert hat.

Standardmäßig abhängig machen legt seine Ausgabe in der genannten Datei ab Makefile wenn es existiert,
Andernfalls Makefile. Mit kann ein alternatives Makefile angegeben werden -f Möglichkeit. Es zuerst
durchsucht das Makefile nach der Zeile

# DIESE ZEILE NICHT LÖSCHEN – make depend hängt davon ab.

oder eines, das mit dem bereitgestellt wird -s Option als Trennzeichen für die Abhängigkeitsausgabe. Wenn es findet
Es löscht alles, was darauf folgt, bis zum Ende des Makefiles und stellt die Ausgabe ein
nach dieser Zeile. Wenn es es nicht findet, hängt das Programm die Zeichenfolge an das Ende von an
das Makefile und platzieren Sie die Ausgabe danach. Für jede Quelldatei erscheint auf der
Befehlszeile, abhängig machen fügt Zeilen in das Makefile des Formulars ein

sourcefile.o: dfile ...

Wo sourcefile.o ist der Name aus der Befehlszeile, dessen Suffix durch „.o“ ersetzt wurde.
und dDatei ist eine Abhängigkeit, die in a entdeckt wurde #einschließen Direktive beim Parsen Quelldatei or
eine der darin enthaltenen Dateien.

BEISPIEL


Normalerweise abhängig machen wird in einem Makefile-Ziel verwendet, sodass die Eingabe von „make depend“ funktioniert
Bringen Sie die Abhängigkeiten für das Makefile auf den neuesten Stand. Zum Beispiel,
SRCS = Datei1.c Datei2.c ...
CFLAGS = -O -DHACK -I../foobar -xyz
abhängen:
makedepend -- $(CFLAGS) -- $(SRCS)

OPTIONAL


Das Programm ignoriert alle Optionen, die es nicht versteht, sodass Sie die verwenden können
dieselben Argumente, die Sie vertreten würden cc(1).

-DName=def or -DName
Definieren. Dies stellt eine Definition für dar Name in makedepend's Symboltabelle. Ohne
=def Das Symbol wird als „1“ definiert.

-Ienthaltenir
Verzeichnis einschließen. Diese Option gibt Auskunft abhängig machen voranstellen enthaltenir zu seiner Liste von
Verzeichnisse, die durchsucht werden sollen, wenn ein gefunden wird #einschließen Richtlinie. Standardmäßig,
abhängig machen Durchsucht nur die Standard-Include-Verzeichnisse (normalerweise / usr / include und
möglicherweise ein vom Compiler abhängiges Verzeichnis).

-Yenthaltenir
Ersetzen Sie alle Standard-Include-Verzeichnisse durch das einzelne angegebene Include
Verzeichnis; das kannst du weglassen enthaltenir um einfach das Durchsuchen des Standards zu verhindern
Verzeichnisse einschließen.

-a Hängen Sie die Abhängigkeiten an das Ende der Datei an, anstatt sie zu ersetzen.

-fMakefile
Dateinamen. Auf diese Weise können Sie ein alternatives Makefile angeben, in dem abhängig machen kann
Platzieren Sie seine Ausgabe. Angabe von „-“ als Dateinamen (d. h. -F-) sendet die Ausgabe an
Standardausgabe, anstatt eine vorhandene Datei zu ändern.

-einschließen Datei
Verarbeiten Sie die Datei als Eingabe und schließen Sie die gesamte resultierende Ausgabe ein, bevor Sie sie verarbeiten
reguläre Eingabedatei. Dies hat die gleichen Auswirkungen, als ob die angegebene Datei ein Include wäre
Anweisung, die vor der allerersten Zeile der regulären Eingabedatei steht.

-oobjsuffix
Suffix der Objektdatei. Einige Systeme verfügen möglicherweise über Objektdateien mit dem Suffix „etwas“.
außer „.o“. Mit dieser Option können Sie ein anderes Suffix angeben, z. B. „.b“.
mit -ob oder „:obj“ mit -o:obj und so weiter.

-pobjprefix
Präfix der Objektdatei. Das Präfix wird dem Namen der Objektdatei vorangestellt. Das ist
Wird normalerweise verwendet, um ein anderes Verzeichnis für die Objektdatei festzulegen. Die Standardeinstellung ist
die leere Zeichenfolge.

-sSchnur
Start-String-Trennzeichen. Mit dieser Option können Sie eine andere Zeichenfolge angeben
abhängig machen im Makefile suchen.

-wBreite
Linienbreite. Normalerweise, abhängig machen stellt sicher, dass jede Ausgabezeile, die es schreibt
Aus Gründen der Lesbarkeit wird die Länge nicht länger als 78 Zeichen sein. Diese Option ermöglicht
Sie können diese Breite ändern.

-v Ausführlicher Vorgang. Diese Option bewirkt abhängig machen um die Liste der enthaltenen Dateien auszugeben
durch jede Eingabedatei.

-m Warnung vor Mehrfacheinbeziehung. Diese Option bewirkt abhängig machen eine Warnung erzeugen, wenn
Jede Eingabedatei enthält mehr als einmal eine andere Datei. In früheren Versionen von
abhängig machen Dies war das Standardverhalten. Die Standardeinstellung wurde in eine bessere geändert
entsprechen dem Verhalten des C-Compilers, der die Mehrfacheinbindung nicht berücksichtigt
ein Fehler sein. Diese Option wird aus Gründen der Abwärtskompatibilität und zur Unterstützung bereitgestellt
Debugging-Probleme im Zusammenhang mit der Mehrfacheinbindung.

-- Optionen --
If abhängig machen findet in der Argumentliste einen doppelten Bindestrich (--), dann einen beliebigen
darauffolgende unerkannte Argumente werden stillschweigend ignoriert; ein zweiter doppelter Bindestrich
beendet diese Sonderbehandlung. Auf diese Weise, abhängig machen kann sicher gemacht werden
Ignorieren Sie esoterische Compiler-Argumente, die normalerweise in einem CFLAGS zu finden sind um
Makro (siehe BEISPIEL Abschnitt oben). Alle Optionen, die abhängig machen erkennt und
zwischen den doppelten Bindestrichen erscheinen, werden normal verarbeitet.

ALGORITHM


Der in diesem Programm verwendete Ansatz ermöglicht es, eine Größenordnung schneller als jedes andere Programm zu laufen
anderen „Abhängigkeitsgenerator“, den ich je gesehen habe. Im Mittelpunkt dieser Aufführung stehen zwei
Annahmen: Alle von einem einzelnen Makefile kompilierten Dateien werden grob kompiliert
gleiche Figure -I und -D Optionen; und dass die meisten Dateien in einem einzelnen Verzeichnis weitgehend enthalten sein werden
die gleichen Dateien.

Angesichts dieser Annahmen abhängig machen erwartet, für jedes Makefile einmal aufgerufen zu werden, mit allen
Quelldateien, die vom Makefile verwaltet werden und in der Befehlszeile angezeigt werden. Es analysiert
jede Quell- und Include-Datei genau einmal, wobei für jede eine interne Symboltabelle verwaltet wird.
Daher dauert die Erstellung der ersten Datei in der Befehlszeile proportional zur Zeit
Zeit, die ein normaler C-Präprozessor benötigt. Aber auf nachfolgende Dateien, wenn ja
Auf eine Include-Datei stößt, die bereits analysiert wurde, wird sie nicht erneut analysiert.

Stellen Sie sich zum Beispiel vor, Sie kompilieren zwei Dateien, Datei1.c und Datei2.c, sie umfassen jeweils
die Header-Datei header.h, und die Datei header.h enthält wiederum die Dateien def1.h und
def2.h. Wenn Sie den Befehl ausführen

makedepend file1.c file2.c

abhängig machen wird analysieren Datei1.c und folglich, header.h und dann def1.h und def2.h. It
entscheidet dann, dass die Abhängigkeiten für diese Datei bestehen

file1.o: header.h def1.h def2.h

Aber wenn das Programm analysiert Datei2.c und entdeckt, dass es auch dazugehört header.h, es tut
Analysiert die Datei nicht, sondern fügt sie einfach hinzu header.h, def1.h und def2.h zur Liste von
Abhängigkeiten für Datei2.o.

Verwenden Sie makedepend online über die Dienste von onworks.net


Kostenlose Server & Workstations

Laden Sie Windows- und Linux-Apps herunter

Linux-Befehle

Ad