1.3.2. Die MS-Windows™-Welt

Unter MS-Windows™ wird LEDA z. Z. für die Entwicklungsumgebungen MS Visual Studio 6, MS Visual C++ .NET, Borland C++ und die Unix™-ähnliche cygwin-Umgebung unterstützt. Für letztere gilt das in Abschnitt 1.3.1 Gesagte.

Die meisten Entwickler schreiben, übersetzen, binden und führen ihre Programme wohl innerhalb einer der integrierten Entwicklungsumgebungen aus. Eine ausführliche Benutzeranleitung für alle diese Umgebungen würde den Rahmen dieser Einführung sprengen. Alle Details sind auf der entsprechenden Manualseite Technical Information beschrieben.

Um dem LEDA-Anfänger ein erstes, garantiertes Erfolgserlebnis zu verschaffen, beschreiben wir in diesem Abschnitt lediglich, wie wir HelloLEDAWorld.C in einer DOS-Box unter MS-Windows™ NP/2000/XP mit dem Compiler des Visual Studio 6 übersetzen und ausführen können. (Dies dürfte der z. Z. meistbenutzte Compiler sein.)

Des Weiteren gehen wir davon aus, dass wir als Laufzeitbibliothek des Compilers die MDd-DLLs (Multithreaded DLL Debug) verwenden. MDd-DLL-Versionen von LEDA sind auch in der Evaluationsversion enthalten; diese sind also in jedem Fall auf unserem System installiert.

In der Vollversion gibt es darüber hinaus statische Bibliotheken und DLLs für alle 6 Compileroptionen MD, MDd, ML, MLd, MT und MTd. Die Aufteilung bei den statischen Bibliotheken ist dieselbe wie unter Unix™; s. dazu Tabelle 1.1. Die dynamischen Bibliotheken kommen immer in Paaren und heißen den Optionen entsprechend

Dabei muss gegen die Dateien leda_xxx.lib gelinkt werden; die Dateien leda_xxx.dll dagegen werden zur Laufzeit des Programms benötigt. Im Gegensatz zur Unix™-Version von LEDA ist in diesen Bibliotheken das gesamte LEDA-System enthalten (mit Ausnahme des Codes für GeoWin; s. hierzu wiederum Tabelle 1.1).

Setzen der Umgebungsvariablen für Visual C++

Der Compiler CL.EXE und der Linker LINK.EXE erfordern es, dass die Umgebungsvariablen PATH, INCLUDE und LIB geeignet gesetzt sind. Bei der Installation von Visual C++ hat das Setup-Programm eine Batch-Datei namens VCVARS32.BAT erzeugt, die Kommandos zum geeigneten Anpassen der drei Variablen enthält.

VCVARS32.BAT muss einmal in der Kommandozeile gestartet werden, bevor Anwendungsprogramme kompiliert werden können. VCVARS32.BAT liegt im Unterverzeichnis bin der Compiler-Installation, z. B. in c:\programs\microsoft visual studio 6\vc98\bin. Um Programme mit LEDA zusammen kompilieren zu können, müssen die Variablen PATH, LIB und INCLUDE zusätzlich die entsprechenden LEDA-Verzeichnisse enthalten.

Setzen der Umgebungsvariablen für LEDA

Mit <LEDAROOT> bezeichnen wir im Folgenden das Wurzelverzeichnis von LEDA. Das ist das Verzeichnis, das wir bei der Installation als Installationsverzeichnis angegeben haben. Wir führen nacheinander folgende Schritte aus:

  1. Im Menü Start auf Settings klicken, danach auf Control Panel.

  2. Im Control Panel auf System doppelklicken.

  3. In der Dialogbox System Properties auf den Reiter Environment klicken (bei NT) bzw. auf den Reiter Extended und dann auf Environment Variables (bei 2000 oder XP).

    Wenn eine Benutzervariable PATH, LIB oder INCLUDE bereits existiert, den aktuellen Wert wie folgt erweitern:

    • PATH um <LEDAROOT> erweitern.
    • INCLUDE um <LEDAROOT>\incl erweitern.
    • LIB um <LEDAROOT> erweitern.

    Ansonsten eine neue Benutzervariable PATH, LIB und/oder INCLUDE mit dem Wert <LEDAROOT> bzw. <LEDAROOT>\incl hinzufügen.

Nachdem wir diese Schritte ausgeführt haben, müssen wir VCVARS32.BAT in der Kommandozeile aufrufen.

Übersetzen, binden und starten

Nachdem die Umgebungsvariablen gesetzt sind, können wir die LEDA-Bibliotheken wie folgt benutzen, um HelloLEDAWorld.C zu übersetzen und zu binden (HelloLEDAWorld.C liege dabei im Verzeichnis mydir):

C:\mydir> cl -MDd -DLEDA_DLL -Tp HelloLEDAWorld.C leda_mdd.lib

Die Option -MDd spezifiziert dabei die Laufzeitbibliothek des Compilers (Multithreaded DLL Debug), und das Flag -DLEDA_DLL ist notwendig, um die DLL-Version von LEDA benutzen zu können (die in der Evaluationsversion enthalten ist).

Die Option -Tp ist immer dann notwendig, wenn die C++-Quelldateien nicht auf .cpp enden, um dem Compiler zu sagen, dass es sich dabei um einen C++-Quelltext handelt.

Es sollte nun eine ausführbare Datei entstanden sein:

C:\mydir> dir HelloLEDAWorld.*
HelloLEDAWorld  HelloLEDAWorld.C

Hurra! Und nun stehen wir vor einem großen Schritt auf unserem Weg zum vollkommen LEDA-Entwickler:

C:\mydir> HelloLEDAWorld
Hello LEDA world! 

Und wie schon erwähnt, ist der Rest jetzt nicht mehr schwer...