home *** CD-ROM | disk | FTP | other *** search
- ACHTUNG: Diese Programme erfordern Kickstart V37 oder jünger.
-
- Autor: Jochen Becher
- Copyright: © 1994 MAXON Computer GmbH
- Version: 1.0 am 15.6.94
-
-
- Eine besondere Stärke des MaxonC++ Compilers ist das "logfile". Dieses File,
- das üblicherweise im Verzeichnis "MCPP:lib" sein Dasein fristet, enthält
- Einträge über Objektdateien, die in dem gleichen Verzeichnis stehen. Zu
- jeder Objektdatei sind Symbole genannt, die diese Objektdatei definiert.
-
- Der Vorteil ist ganz klar: Der Linker kann die Logdatei schneller durchsuchen
- als eine Bibliothek (z.B. amiga.lib) und damit schneller linken. Außerdem
- lassen sich die Objektdateien einfach durch neuere Versionen ersetzen, als
- einzelne Objekte einer Bibliothek. Die Frage ist nur, wie bekommt man die
- Symbole in die Logdatei? Insbesondere die C++ Symbole sind ja nicht gerade
- trivial aufgebaut und erfordern ziemlich viel Arbeit.
-
- Hierbei helfen zwei kleine Programme:
-
- ****************************************************************
-
- delObject <logfile> <objectname>
-
- löscht einen Objekteintrag aus der Logdatei, z.B. entfernt
-
- delObject MCPP:lib startup.o
-
- den (zumindest beim Autor) ersten Eintrag der Logdatei. Aus verständlichen
- Gründen sollten Sie dieses Beispiel jetzt nicht ausführen - Sie müssten
- sich sonst die Originaldatei wieder installieren. Die Objektdatei selbst
- (im obigen Beispiel als MCPP:lib/startup.o) wird nicht (!) gelöscht.
-
- ****************************************************************
-
- printSymbols <objektdatei>
-
- gibt den Namen der Objektedatei und alle Symbole dieser Objektdatei
- auf der Standardausgabe aus, z.B. sollte das Ergebnis von
-
- printSymbols MCPP:lib/startup.o
-
- ungefähr so aussehen:
-
- startup.o
- _EXIT_0__Reply_StartuP_MessAge
- _INIT_0_Get_StartuP_MessAge
- __StartUp
- StartupMessage
-
- Wenn man nun die Ausgabe umleitet, kann man diese Symbole direkt an die
- Logdatei anhängen:
-
- printSymbols MCPP:lib/startup.o >>MCPP:lib/logfile
-
- Auch dieses Beispiel sollten Sie besser nicht durchführen, ihre Logdatei
- enthielte sonst den Eintrag startup.o mit allen Symbolen doppelt.
-
- ****************************************************************
-
- Neben diesen beiden Programmen gibt es noch zwei Skripte "log" und "unlog".
-
- Das Skript "log" kopiert eine Objektdatei in das Verzeichnis MCPP:lib, löscht
- den Eintrag aus dem logfile und hängt die neuen Einträge wieder an. Von
- der Logdatei wird vorher noch eine Kopie auf MCPP:lib/logfile.bak gemacht.
-
- Mit "log ALL" können sie diesen Vorgang auf ein ganzes Verzeichnis anwenden,
- dann wird "log" für alle Objektdateien im aktuellen Verzeichnis ausgeführt.
-
- Das Skript "unlog" löscht eine Objektdatei aus dem logfile, aber nicht die
- Objektdatei im Verzeichnis MCPP:lib selbst. Auch hier wird vorher eine
- Kopie der Logdatei angelegt, allerdings auf MCPP:lib/logfile.bik.
-
- Auch hier wird der Vorgang mit "unlog ALL" auf alle Objektdateien des
- aktuellen Verzeichnisses durchgeführt.
-
-