Der normal way
für Linux ist die Verwendung einer Make-Datei.
Es ist aus all den Fehlern entstanden, die Menschen beim Kompilieren immer komplexerer Anwendungen von Hand oder mit selbst erstellten Skripten gemacht haben. Es ist nicht trivial, Build-Abhängigkeiten für ein komplexes Projekt darzustellen. Make bietet einfach einen standardisierten Weg, um solche Abhängigkeiten anzugeben, und ein Tool, um die Abhängigkeiten zu parsen und zugehörige Build-Aktionen auszuführen.
Sogar Benutzeroberflächen, die den Build-Prozess für Sie vereinfachen/automatisieren, verwenden eine Make-Datei oder etwas Ähnliches hinter den Kulissen.
AKTUALISIEREN
Für diejenigen, die sich über den Automake-Kommentar wundern, hier zwei unterschiedliche Ansichten zu diesem Thema
http://www.freesoftwaremagazine.com/books/autotools_a_guide_to_autoconf_automake_libtool
http://www.scurrilous.com/blog/archives/2005/08/23/i-hate-automake/
Makefiles erledigen so viel Arbeit für Sie und sind häufig leistungsfähiger, als die Leute glauben. Nehmen Sie das folgende einfache Makefile
all: helloworld
das ist eine Zeile, und (zumindest gnu make) würde wissen, dass cc -o helloworld helloworld.c
ausgeführt werden muss Wenn das Projekt dann wächst, fügen Sie eine weitere Regel hinzu:
helloworld: ui.o xml.o mailcomponent.o
$(CC) $(CFLAGS) -o [email protected] [email protected] $^
und make weiß zu laufen
cc -c ui.c
cc -c xml.c
cc -c mailcomponent.c
cc -o helloworld helloworld.c ui.o xml.o mailcomponent.o
Sagen Sie dann, dass Sie alles optimieren möchten.
CFLAGS=-O2
am Anfang der Datei kümmert sich um Sie.
Wenn das Projekt größer wird, verfolgt make die Dateien, die sich geändert haben und die nicht geändert wurden, und verhindert so überflüssige und zeitraubende Neukompilierungen.
Makefiles sind wunderbare Zeitsparer, und ich habe noch nicht einmal fortgeschrittenere Rezepte angesprochen.