* Andre schrieb am 19.Mär.2002:
Wenn ich beim Kompellieren mit "make" folgende Fehlermeldung bekomme: (`cimon' is up to date) dann darf ich doch davon ausgehen das ich neue Version von make brauche, oder? Wenn das der Fall ist wo bekomme ich dann eine neue Version her?
Nein. Make hat nur sein Aufgabe gemacht. make ist ein Programm, daß je nach Abhängigkeiten andere Programme aufruft, und dabei möglichst Arbeit vermeiden soll. Beispiel. Du hast ein C-Sourcefiele: Programm.c und willst es übersetzen. Angenommen, Du befindest Dich in einem Verzeichniß, in dem es außer diesem Sourcefile keine weiteren Dateien gibt. Insbesondere kein Makefile und keinen Datei names Programm. Wenn Du dann make Programm sagst, so startet make den C-Compiler und das übersetzte Programm heißt dann Programm und befindet sich dann auch im Verzeichniß. Machst Du anschließend noch einmal make Programm, so bekomst Du die Meldung: `Programm' is up to date. Sonst macht make nichts, braucht es nicht, weil Programm schon up to date ist. Änderst Du aber was an Programm.c (braucht nur das Erstellungsdatum zu sein) dann wird make Programm wieder den C-Compiler aufrufen. Und genau das ist die Aufgabe von make. make hat noch eine ganze Menge Sachen mehr im Bauch, so weiß es auch, was es mit Pascal-, Fortran-, Assambler- und TeXProgrammen machen soll, auch mit yacc und lex kann es umgehen. Aber sehr bald ist make natürlich am Ende, es kann nicht wissen, daß Programm nicht nur von Programm.c sondern auch von Programm.h und vielleicht auch noch von IO.c, IO.h, comp.c, comp.h, misc.c abhängt, um das Make zu sagen, muß man ein Makefile schreiben. Es kann dann auch noch ein wenig komplizierter sein. So wird es sein, daß Programm von Programm.o, IO.o, comp.o und misc.o abhängt. Program.o hängt dann von Programm.c und Programm.h ab. IO.o hängt von IO.c und IO.h ab, comp.o von comp.c, comp.h und Programm.h und misc.o hängt von misc.c und Programm.h. So mal mein Beispiel. Wenn man nun Programm.h ändert und dann make Programm sagt, so wird zuerst Programm.o, comp.o und misc.o erzeugt, nicht aber IO.o, da es nicht von Programm.h abhängt und dann wird es zu Programm gebunden. Wie Du siehst versucht make so wenig wie möglich Arbeit zu machen. Wenn gar nichts mehr zu machen ist, dann sagt make halt, daß alles up to date ist. Bernd -- Was ist quoten? Quoten ist das Zitieren aus einer mail, der man antwortet. Und wie macht man es richtig? Zitate werden mit "> " gekennzeichnet. Nicht mehr als nötig zitieren. Vor den Abschnitten das Zitat, auf das man sich bezieht, mit einer Zeile Abstand oben und unten. |Zufallssignatur 12