Wie mittels des Tutorials zur Installation und Konfiguration der DMD Compilertools beschrieben können wir jetzt in D geschriebene Programmquelltexte compilieren, linken und danach ausführen. Das Linken geschah aufgrund einiger Voraussetzungen noch automatisch.
Linken bedeutet hierbei, dass mehrere Module eines Programms miteinander korrekt „verbunden“ (gelinkt) werden, damit daraus das fertige Programm gefertigt werden kann.
Das linken geschieht auf Quelltextebene mit dem import Befehl. Doch so leicht ist das dann doch nicht. Man muss dem Compiler/Linker jedes Modul irgendwie bekannt machen, sprich, wo es der Compiler/Linker auf dem Computer findet und was er damit machen soll (z.B. daraus eine Laufzeitbibliothek basteln).
Dies kann bei großen Programmen seeeehr aufwendig werden. In den 80. / 90. Jahren des letzten Jahrhunderts war es vielleicht noch chic das ganze per Makefile (
Glossarlink) zu organisieren. Die Makefiles enthielten hunderte Module und Anweisungen. Auch nicht gerade leicht solche Makefiles zu warten.
In der heutigen Zeit empfiehlt es sich deshalb ein Buildtool (
Glossarlink) (Bauwerkzeug) zu verwenden, welches diese organisatorischen und zeitraubenden Sachen übernimmt. Solche Tools sind oft leicht zu konfigurieren und suchen sich, z.B. aufgrund der strengen Package-Module Ordnung bei D und den Importverweisen im Quelltext (also welches Modul welches andere unbedingt braucht), die Dateien selbstständig zusammen. Eine enorme Erleichterung.
Hier wird nun ein Buildtool für D vorgestellt, welches schon sehr gut funktioniert und auch weiterentwickelt wird (was zur Zeit aber etwas stagniert - so wie es eben bei Projekten von freiwilligen Programmierern der Fall sein kann).
Das Buildtool heißt DSSS was für D Shared Software System steht und auch gleich noch einen großen Vorteil des Tools benennt, ein ver- bzw. geteiltes System, bei dem viele Bibliotheken direkt aus dem DSSS Online Repository (
Glossarlink) mit einfachen Befehlen nachinstalliert werden können. So lässt sich sogar die ganze Compiler-Installation / -Konfiguration des ersten Tutorials überspringen und von DSSS erledigen lassen - na ja, wieder fast: Wenn man die aktuellsten Versionen des Compilertools haben will muss man doch noch selber Hand anlegen (
Link zum entsprechenden Abschnitt!).
Das kompilieren der Quelltexte zu einem Programm geschieht dann auch fast automatisch mittels eines einfachen Befehls (
Link zum entsprechenden Abschnitt!).
In diesem Tutorials wird all dies und noch mehr erklärt.
Viel Spaß beim lesen!
DSSS lädt man über die Projektseite http://www.dsource.org/projects/dsss runter.
Der direkte Downloadlink für die DSSS-Windows-Version 0.78 lautet: http://svn.dsource.org/projects/dsss/downloads/0.78/dsss-0.78-x86-windows.zip
Nach dem Download entpackt man DSSS. Wie bei den DMD Compilertools am Besten nicht zu tief in der Ordner-Hierarchie und ohne Leer- und Sonderzeichen im Pfad (C:\Compiler\DSSS ist z.B. ein guter Pfad).
Die Ordner des frisch entpackten DSSS sind dann:
Im bin-Ordner liegt die dsss.exe, welche das Herz des Systems ist.
Jetzt muss man, genauso wie die DMD Compilertools, den Pfad zur dsss.exe Datei in die Umgebungsvariablen eintragen, so dass man mit dem Befehl dsss in der Kommandozeile egal von welchem Ordner DSSS ausführen kann - sinnigerweise vom Quelltextordner des eigenen Programmes, welches man compilieren möchte.
Die folgende Vorgehensweise wurde auf einem Windows 7 System vollzogen, ist aber auch unter Windows Vista und Windows XP weitestgehend identisch.
Um die Pfadvariable bequem anzupassen ruft man die Systemsteuerung z.B. so Start (Taskleiste) → Systemsteuerung → System auf und sucht nach den Erweiterten Systemeinstellungen (Bei Windows 7 oben links).
Dort angelangt drückt man auf Systemumgbungsvariablen:
Dann auf Neu um eine neue Systemvariable zu erstellen:
Jetzt gibt man im Feld Varialben Name z.B. DSSS und im Feld Varialben Wert den Pfad zum bin Ordner des D Shared Software Systems ein:
Nach einem klick auf OK erscheint nun eine neue Systemvarialbe DSSS in der Liste der Systemvariablen.
Aus genau dieser Liste sucht man nun die Variable mit der Bezeichnung Path und klicken auf den Edit -Knopf:
Es erscheint ein ähnliches Fenster wie beim Erstellen der neuen Systemvariable, doch diesmal erstellt man keine, sondern erweitern die bereits vorhandene Path-Varialbe.
Im Feld Variablenwert bewegen wir den Eingabezeiger ans Ende der Zeile und ergänzen diese mit ;DSSS wobei das Semikolon nicht vergessen werden darf. Es trennt die einzelnen Werte voneinander. Wenn man hinter die DSSS-Variable weitere Einträge anfügen möchte, muss man wiederum ein Semikolon nutzen:
Nun ein klick auf Ok und wir sind fertig!
Jetzt kann man in der Kommandozeile mit dem Befehl dsss von jedem beliebigen Ordner aus die Buildtools starten (achtet drauf, dass ihr nach dem Ändern der Varialben ein neues Kommandozeilenfenster öffnet, damit es mit den aktualisieren Varialben arbeitet - Windows XP Nutzer müssen u.U. einen Neustart machen!):
Nachdem man DSSS entpackt und das bin-Verzeichnis dem System bekannt gemacht hat, sind die Tools bereit.
Allerdings enthält das Paket nur das Buildtool, welches noch auf einen Compiler, Linker und eine (oder mehrere) Bibliotheken angewiesen ist.
Im Artikel über die DMD Compilertools wurde ja über die manuelle Einrichtung des Compilers geschrieben. Jetzt gilt es beide Welten zusammen zu bringen.
DSSS ist dazu jedoch nicht direkt auf eine manuelle Installation der Tools angewiesen - das Tutorial darüber war somit nur der Vollständigkeit wegen geschrieben worden.
DSSS kann auf ein Online-Repository(
Glossar) zurückgreifen, in welchem brauchbare Bestandteile der D-Welt abgelegt sind und von DSSS aus installiert werden.
Für den Zugriff auf das Online-Repository bekommt man mit:
dsss net
Man muss eine Online-Quelle auswählen 1) und bestätigen:
Wie man an der letzten Zeile sieht, braucht der net Befehl einen weiteren Parameter.
Eine Liste aller „zuladbaren“ Pakete erhält man mit:
dsss net list
Will man nun ein Paket aus dem Online-Repository installieren, so nutzt man den Befehl:
dsss net install
In der Liste entdecken wir den Eintrag dmd, also die Digital Mars D Compilertools.
Die Installation erfolgt mittels:
dsss net install dmd
DSSS lädt, entpackt und konfiguriert alles selbstständig; nur etwas Geduld wäre von Vorteil.
Welche Pakete DSSS bereits installiert hat kann man mittels des folgenden Befehls in Erfahrung bringen:
dsss installed
Zum jetzigen Zeitpunkt ist die Liste installierter Pakete noch recht kurz:
Wir haben nun ein voll funktionstüchtiges Buildtool, welches mittels der DMD Compilertools und Phobos seine Dienste verrichten kann.
Hat man vor den DSSS-Tools die DMD Compiler installiert gehabt, kann man sie nun entfernen (Das löschen der DMD-Systemvariable nicht vergessen um das System schlank zu halten).
Sind die Digital Mars D Compilertools nicht mehr separat installiert 2), so kann man mittels
dmd
Befehl trotzdem darauf zugreifen, weil sich die eben installierten DMD-Tools bzw. die dmd.exe nun im dsss-bin Ordner befindet:
Wie in der zweiten Zeile des Screenshots in diesem weiß markiert sieht man, welche Versionsnummer die DMD Compilertools aus dem Online-Repository besitzen: Nicht gerade die aktuellste!
Leider gibt es keine mir bekannte Möglichkeit die DMD Compilertools automatisch zu aktualisieren, solange sie nicht im Online-Repository aktualisiert sind.
Doch es gibt eine manuelle Methode die DMD Compilertools zu aktualisieren:
Um die DMD Compilertools in DSSS zu aktualisieren benötigt es nicht viel.
Im Grunde besteht das manuelle Aktualisieren aus diesen 5 Schritten:
Und fertig!
Hier nochmal ausführlich:
Wenn man nun per dmd-Befehl aus der Kommandozeile die DMD Compilertools aufruft sieht man, dass die neue Version ausgeführt wird.
Die sc.ini Datei beinhaltet die Ordnerstruktur der DMD Compilertools, also die relativen Pfade zur Standardbibliothek und dem Linker. Da DMD eine etwas andere Ordnerstruktur hat als DSSS, kann man die sc.ini entweder per Hand anpassen, oder einfach mit der von DSSS erstellten überschreiben.
Um mit den Buildtools nun zu arbeiten, nehmen wir wieder das Hallo Welt! Programm hier
module HalloWelt;
import std.stdio;
void main(){
writefln("Hallo Welt!\n");
}
Den Quellcode kopieren wir in eine leere Textdatei und speichern sie mit der Dateiendung *d* am Besten im utf-8 Format ab, z.B. halloWelt.d.
Nun brauchen wir, anders als beim Arbeiten mit dem reinen DMD Compiler eine weitere Datei, die dsss.conf heißt (immer!) und auch eine reine Textdatei im utf-8 Zeichenformat ist. Diese speichern wir in den gleichen Ordner wie unsere HalloWelt.d Quellcodedatei
In diese Datei schreiben wir:
[HalloWelt.d]
Das war es auch schon! Für den Anfang brauchen wir nicht mehr.
Nun stoßen wir den build-Vorgang an, indem wir den Befehl dsss build aus dem Verzeichnis, in dem unsere HalloWelt.de, sowie unsere dsss.conf Datei liegen, in der Kommandozeile ausführen:
Erscheint nun keine weitere Nachricht, außer einer weiteren Promt-Zeile ist alles glatt durchgelaufen.
Nun können wir die neu erstellte HalloWelt.exe Datei wie gewohnt 4) ausführen.
Der Aufwand die Buildtools zu installieren, zu konfigurieren und eine dsss.conf Datei anzulegen mag zu diesem Zeitpunkt etwas übertrieben erscheinen, doch spätestens wenn das eigene Programm sich über mehrere Quelltextdateien erstreckt, wird man die Tools zu schätzen wissen. Dazu später mehr…
Inhalt Inhalt Inhalt
Quellen eintragen