MIN-Fakultät
Fachbereich Informatik
Szenenanalyse und Visualisierung (SAV)

Benutzung der VIGRA-Funktionalität unter Windows mit MS Visual Studio 2010/12


Für die Nutzung unter Linux, UNIX und Mac OS sei auf das VIGRA-Reference-Manual (Installation) verwiesen.


Microsoft Visual Studio ist eine nun freie, ehemals kostenpflichtige IDE, die aber als Vollversion im Rahmen des MS Dreamspark Projekts an Studiende kostenlos verteilt wird, allerdings mit der Auflage des nicht-kommerziellen Einsatzes. Da sie den Microsoft Compiler beinhaltet, tritt leider oft ein abweichendes Verhalten gegenüber dem GCC unter UNIX/LINUX auf. Das heißt z.B.: Andere Fehlermeldungen, anderes Kompilierungsverhalten, kaum mehr Makefiles, dafür Projektdateien etc. Dafür ist der Compiler mittlerweile auch "erwachsen" geworden und sollte theoretisch in der Lage sein, beliebigen C++-konformen Code zu übersetzen. Positiv hingegen ist der sehr gute integrierte Debugger, die automatische Code-Vervollständigung und ein guter Editor mit Syntax-Highlighting um nur einige Vorzüge zu nennen.
Die folgenden Schritte beschreiben die Einrichtung der VIGRA-Bibliothek unter dieser Entwicklungsumgebung.

1. Herunterladen und entpacken

  1. Zuerst einmal muss geklärt sein, ob in 32bit oder in 64bit entwickelt werden soll. Ist das Betriebssystem 64bit, so stehen einem bei Optionen offen. Da das Kompilieren der VIGRA (1.10.0) eine Reihe von Abhängigkeiten erfordert, deren Kompilierung teilweise nicht-trivial ist, biete ich hier fertige Binärpakete zum Download an.
    Hierbei kann entweder die VIGRA mit den am häufigsten benötigten Paketen sowie Boost::Python und Python2.7 heruntergeladen werden (VIGRA+Python) oder aber eine komplette Arbeitsumgebung inkl. Qt4, pylab und spyder (VIGRA+Spyder). Es stehen Binärpakete jeweils für die Verwendung mit MS Visual Studio 2010 oder 2012 bereit.
  2. Nach dem Download müssen die jeweiligen Zip-Archive noch entpackt werden, der Pfad spielt dabei absolut keine Rolle! Nehmen wir für diese Anleitung einmal an, dass wir 32bit entwickeln, und das entpackte Archiv nun in den Ordner
    C:\local\Win32
    verschoben wurde.
32 Bit 64 Bit
VS 2012 VIGRA+Python (32 Bit) VIGRA+Sypder (32 Bit) VIGRA+Python (64 Bit) VIGRA+Spyder (64 Bit)
VS 2010 VIGRA+Python (32 Bit) VIGRA+Sypder (32 Bit) VIGRA+Python (64 Bit) VIGRA+Spyder (64 Bit)

2. Pfade anpassen

Um sicherzustellen, dass die kompilierten Dateien auch ausführbar sind, müssen die vorkompilierten DLLs und ausführbaren Dateien zum System-Pfad hinzugefügt werden. Dies kann unter "Computer->Eigenschaften->Erweiterte Einstellungen->Umgebungsvariablen" eingestellt werden. Zum kompletten Einrichten müssen folgende Pfade (vorne) zu 'PATH' hinzugefügt werden:

  • Für VIGRA+Python
    C:\local\Win32\bin;C:\local\Win32\perl\bin;C:\local\Win32\python;C:\local\Win32\python\Scripts;C:\local\Win32\python\DLLs;

    Falls weder das mitgelieferte Perl noch die Python-Bindings verwendet werden, so reicht es

    C:\local\Win32\bin;
    vor den Pfad zu stellen.
  • Für VIGRA+Spyder
    C:\local\Win32\bin;C:\local\Win32\perl\bin;C:\local\Win32\qt\bin;C:\local\Win32\python;C:\local\Win32\python\Scripts;C:\local\Win32\python\DLLs;
  • Für Entwicklungen mit dem Qt4-Rahmenwerk muss zunächst die Version mit Spyder heruntergeladen werden. Anschließend muss Qt noch der tatsächliche Installationspfad mitgeteilt werden. Dies geschieht durch Anlegen einer Datei namens:
    C:\local\Win32\qt\bin\qt.conf
    mit folgendem Inhalt (für dieses Beispiel):
    [Paths]
    Prefix = C:/local/Win32/qt

3. Visual Studio Projekteinstellungen

Um eine erste Anwendung zu schreiben, starte Visual Studio und wähle als neues Projekt eine C++ Konsolenanwendung aus. Stelle zudem sicher, dass die Zielarchitektur entweder 64bit oder 32bit ausgewählt wird - passend zur jeweils heruntergeladenen VIGRA-Umgebung.

Anschließend müssen in den Projekteigenschaften folgende Werte ergänzt werden (für alle Konfigurationen):

  1. C/C++ -> Zusätzliche Include-Verzeichnise:
    C:\local\Win32\include
  2. Linker -> Zusätzliche Bibliotheks-Verzeichnise:
    C:\local\Win32\lib
  3. Linker -> Eingabe -> Zusätzliche Bibliotheken
    jpeg.lib
    png.lib
    zlib.lib
    tiff.lib
    IlmImf.lib
    Imath.lib
    Half.lib
    Iex.lib
    IlmThread.lib
    hdf5.lib
    hdf5_hl.lib
    fftw-3.3.lib
    fftwf-3.3.lib
    vigraimpex.lib

Für Debug-Konfigurationen müssen schließlich noch folgende Projekteigenschaften angepasst werden:

  1. C++ -> Präprozessor -> Präprozessordefinitionen:
    Entferne das _DEBUG flag so wie es in diesem Bild gezeigt wird.
  2. C++ -> Codegenerierung -> Laufzeitbibliothek:
    Setze die Laufzeitbibliothek auf: Multithreaded-DLL (/MD), so wie es in diesem Bild gezeigt wird.

Anschließend sollte das Programm kompiliert werden können und sämtliche VIGRA-Funktionalität zur Verfügung stehen.