Anfang des Inhaltsbereichs

Diese Grafik wird im zugehörigen Text erklärt Beispiel: Übersetzen der Datei HelloWorld.c Dokument im Navigationsbaum lokalisieren

Einsatzmöglichkeiten

Sie übersetzen und linken die Datei sys/src/SAPDB/HelloWorld.c zu einem ausführbaren Programm usr/pgm/hello (bzw. usr\pgm\hello.exe unter Microsoft Windows).

Voraussetzungen

·        Sie haben die Datei sys/src/SAPDB/HelloWorld.c erstellt.

·        Sie haben die Include-Datei sys/src/SAPDB/HelloWorld.h erstellt.

Ablauf

...

       1.      Sie starten den MAKE-Vorgang (VMAKE-Version fast):

imf.pl hello.lnk

       2.      VMAKE ermittelt die benötigten Dateien:

¡        VMAKE erkennt die Beschreibungsdatei sys/desc/hello.lnk anhand ihrer Dateiendung .lnk als die Beschreibung eines ausführbaren Programms. Die Beschreibung enthält nur die Datei :SAPDB/HelloWorld.c; der Doppelpunkt steht für das Verzeichnis mit den Moduldateien sys/src.

¡        VMAKE erkennt die Moduldatei sys/src/SAPDB/HelloWorld.c anhand ihrer Dateiendung .c als eine Moduldatei, die mit dem C-Kompilierer übersetzt werden muss. Die von dieser Moduldatei benötigten Include-Dateien werden in der Beschreibungsdatei sys/desc/SAPDB.com aufgeführt:
HelloWorld.c    inc=:SAPDB/HelloWorld.h
In dieser Zeile können weitere Optionen für den Kompilierer stehen.

¡        Die Include-Datei sys/src/SAPDB/HelloWorld.h benötigt keine weiteren Dateien, ansonsten müssten diese Abhängigkeiten ebenfalls in SAPDB.com eingetragen werden.

       3.      VMAKE aktualisiert die benötigten Dateien:

¡        Include-Dateien:
HelloWorld.h, HelloWorld.c fast, hello.lnk fast
Diese kopiert VMAKE aus dem Entwicklungsbereich in ein entsprechendes Unterverzeichnis sys/wrk/incl, in diesem Fall nach sys/wrk/inl/SAPDB/HelloWorld.h. Dateinamen in #include-Anweisungen sind deshalb immer relativ zu sys/wrk/incl anzugeben.

¡        C-Quellen:
HelloWorld.h, HelloWorld.c fast, hello.lnk fast
Diese werden mit Hilfe des C-Kompilierers in Objektdateien übersetzt. Objektdateien können in drei Versionen (VMAKE-Versionen) erzeugt werden: fast (mit Optimierung) oder slow (mit Assertions und Traceausgaben). In diesem Fall wird die erzeugte Datei nach sys/wrk/fast/obj/SAPDB/HelloWorld.o geschrieben. Auch unter Microsoft Windows erhalten Objektdateien die Dateiendung .o. Zum Übersetzen wird die Quelldatei in das Verzeichnis sys/wrk/fast/tmp kopiert. Alle Zwischenergebnisse (diese fallen insbesondere bei PASCAL-Quellen an) werden in diesem Verzeichnis erzeugt und können beim Auftreten eines Fehlers dort überprüft werden.

¡        Ausführbare Programme:
HelloWorld.h, HelloWorld.c fast, hello.lnk fast
Diese werden gelinkt und nach usr/pgm kopiert. Unter UNIX wird dabei usr/pgm/hello.f erzeugt und darauf ein Link im Dateisystem unter usr/pgm/hello eingetragen. Unter Microsoft Windows wird die Datei usr\pgm\hello.exe.ferzeugt und nach usr\pgm\hello.exe kopiert.

       4.      Sie zeigen die VMAKE-Protokolle hello.lnk.p0 (Kopie der Bildschirmausgabe) und hello.lnk.x0 (Auflistung aller relevanten Zeitstempel sowie der ausgeführten Aktionen) an:

ipf.pl hello.lnk

Varianten

·        Erzwungene Übersetzung: Damit wird das angegeben Ziel neu erzeugt. Ein ausführbares Programm wird neu gelinkt.

imf.pl -u hello.lnk

hello.lnk fast

·        Option -U: Damit werden das angegebene Ziel und alle dafür benötigten Moduldateien neu erzeugt.

imf.pl -U hello.lnk

HelloWorld.c fast
hello.lnk fast

·        Option -U -I: Damit werden das angegebene Ziel, alle dafür benötigten Module und alle benötigten Include-Dateien neu erzeugt.

imf.pl -U -I hello.lnk

HelloWorld.h
HelloWorld.c fast
hello.lnk fast

·        Option -e: Sie weisen VMAKE an, alle Ziele mit Debuginformationen zu erzeugen (siehe Aktivieren des Debug-Modus).

imf.pl -U -e hello.lnk

HelloWorld.c fast  debug
hello.lnk fast  debug

Danach kann usr/pgm/hello im Debugger gestartet werden. Die Quelldateien werden nach dem Übersetzungsvorgang nach sys/wrk/fast/debug kopiert. Dies ist vor allem für PASCAL-Moduldateien wichtig, da diese nicht im Quelltext debugt werden können, sondern nur anhand der generierten C-Datei.

       5.      Anzeigen der neu zu erzeugenden Ziele:

imf.pl -u -n hello.lnk

       6.      Anzeigen der benutzten Modul- und Beschreibungsdateien:

imf.pl -m hello.lnk

       7.      Anzeigen der benutzten Modul- und Beschreibungsdateien sowie der Abhängigkeiten:

imf.pl -C hello.lnk

Ende des Inhaltsbereichs