OpenEXR kompilieren

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Antworten
Tiles

OpenEXR kompilieren

Beitrag von Tiles »

Ich grubel mich derzeit durch die fehlenden Dependencies, um Blender unter Windows 7 kompiliert zu bekommen. Gar nicht so einfach mit einem C/ C++ Wissensschatz von exakt Null ^^

Im Moment hänge ich jedenfalls fest. Cmake meckert beim Bearbeiten der Blender Dateien über fehlendes OpenEXR. Also die vier Codepakete runtergeladen. Und probiert sie zu kompilieren. Bei Imath war ich teilweise erfolgreich. Cmake ist problemlos durchgelaufen. Und mit VS 2013 community habe ich dann eine Exe erstellt bekommen. Die weigert sich aber hartnäckig zu installieren. Das Programm kann nicht gestartet werden, da Imath-2_2.dll auf dem Computer fehlt. Installieren sie das Programm erneut ...

Eigentlich war ich ja der Meinung dass diese Exe die ich da erstellt habe genau das installieren soll. Das fehlende Imath Zeug eben. Tcho. Und da steh ich nun wie Ochs vor Berg ^^

Also mal mit der eigentlichen OpenEXR Datei weitergemacht. Da bekomme ich von Cmake gleich mal Mecker dass die ZLib fehlt. Die ist aber definitiv drauf, und steckt im windows/system32 Ordner.

Code: Alles auswählen

CMake Error at C:/Program Files (x86)/CMake/share/cmake-3.3/Modules/FindPackageHandleStandardArgs.cmake:148 (message):
Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR)
Call Stack (most recent call first):
C:/Program Files (x86)/CMake/share/cmake-3.3/Modules/FindPackageHandleStandardArgs.cmake:388 (_FPHSA_FAILURE_MESSAGE)
C:/Program Files (x86)/CMake/share/cmake-3.3/Modules/FindZLIB.cmake:110 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
CMakeLists.txt:53 (FIND_PACKAGE)
Entsprechende Zeile in CMakeLists.txt:

Code: Alles auswählen

FIND_PACKAGE(ZLIB REQUIRED)
INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR})
Was mache ich denn hier grade wieder alles falsch ? :)
RazorX
Establishment
Beiträge: 156
Registriert: 23.12.2010, 14:13
Kontaktdaten:

Re: OpenEXR kompilieren

Beitrag von RazorX »

CMake versucht an der Stelle den Pfad zu ZLIB aufzulösen. Meistens funktionieren die Find*.cmake Skripts so, dass entweder eine Umgebungsvariable vorrausgesetzt wird oder irgendwelche Default-Installationspfade angenommen werden. Bei FindZLIB.cmake geht es sogar über einen Registryeintrag.

Code: Alles auswählen

set(_ZLIB_SEARCH_NORMAL
  PATHS "[HKEY_LOCAL_MACHINE\\SOFTWARE\\GnuWin32\\Zlib;InstallPath]"
        "$ENV{PROGRAMFILES}/zlib"
  )
Das ZLib im systems32 liegt, ist da völlig irrelevant, da es für die Abhängigkeiten im Windows zwar auflösbar ist, aber nicht was die Abhängigkeiten im CMake angeht. Ich habs jetzt selbst nicht getestet und hab ZLIB gerade nicht mehr richtig im Kopf, aber ich würde mal versuchen ein richtiges Setup davon durchzuführen. Alternativ schau dir das Skript selber nochmal genauer an: https://github.com/Kitware/CMake/blob/m ... ZLIB.cmake Falls du eine Installation davon rumliegen hast und er es nicht aufgelöst bekommt, dann versuch doch mal manuell ZLIB_ROOT in den Umgebungsvariablen einzutragen (aber nicht system32, sondern einen Ordner wo sowohl include als auch lib Dateien liegen).

MfG RazorX
Tiles

Re: OpenEXR kompilieren

Beitrag von Tiles »

Dank dir. Du hast mir da wieder ein paar wichtige Stichworte geliefert :)
Tiles

Re: OpenEXR kompilieren

Beitrag von Tiles »

Sou. Zumindest bin ich einen Schritt weiter gekommen. Das mit dem Einbinden hat mich auf die richtige Spur gebracht. Es gibt oben in Cmake eine Checkbox namens Advanced. Wenn man die aktiviert dann wird plötzlich viel mehr Inhalt angezeigt. Unter anderem auch die Variablen für den Pfad zu Zlib. Ich habe die mal im ersten Shot schon entsprechend angepasst. Der Mecker wegen fehlender ZLIB Library ist nun weg. Ich kann sowohl Configure machen, als auch Generate. Und das Ding geht dann auch mit einem Klick auf die erstellte openexr.sln in VS auf, und lässt sich kompilieren.

Was ich allerdings nun in Cmake habe ist eine kleine rote Meldung mit der ich nichts anfangen kann: ILMBASE_PACKAGE_PREFIX =

Und das Build in VS schmeisst mir 105 Errors. Und weil ich nicht glaube dass die Releaseversion von OpenEXR mit so vielen Bugs gesegnet ist gehe ich mal davon aus dass ich wohl obigen Eintrag noch fixen muss ^^

Was muss ich denn da jetzt anstellen? :)
Dateianhänge
openexr2.jpg
openexr1.jpg
Benutzeravatar
mnemonix
Establishment
Beiträge: 101
Registriert: 09.04.2010, 20:38

Re: OpenEXR kompilieren

Beitrag von mnemonix »

Hi,

ich habe mal eine kleine Anleitung zusammengestellt. Ich übernehme keine Gewähr auf Vollständigkeit oder Funktionalität. Getestet mit Visual Studio 2015 Community Edition (x64 Platform).
  1. Download folgender Dateien OpenEXR 2.2.0, IlmBase 2.2.0 und zlib 1.2.8
  2. Empfohlene Verzeichnisstruktur für alle nachfolgenden Schritte:
    • <DEIN_PFAD>/ilmbase_build
    • <DEIN_PFAD>/ilmbase_install
    • <DEIN_PFAD>/ilmbase-2.2.0
    • <DEIN_PFAD>/openexr_build
    • <DEIN_PFAD>/openexr_install
    • <DEIN_PFAD>/openexr-2.2.0
    • <DEIN_PFAD>/zlib_build
    • <DEIN_PFAD>/zlib_install
    • <DEIN_PFAD>/zlib-1.2.8
    Die Download-Dateien dabei in die entsprechenden <LIB>-<VERSIONSNUMMER>-Ordner entpacken.
  3. Danach <DEIN_PFAD> auf Laufwerk Z: mappen mit cmd>subst z: <DEIN_PFAD>. Damit hast du den Vorteil, dass du nachfolgende Schritte unabhängig von deinem Speicherort deines <DEIN_PFAD> übernehmen kannst. Des Weiteren lässt sich auch danach noch deine Verzeichnisstruktur umziehen ohne dass deine CMake Konfiguration flöten geht (feste Pfade).
  4. Zlib folgendermaßen konfigurieren:
    Screenshot 2015-08-05 19.38.22.png

    Beachte: Das CMAKE_INSTALL_PREFIX entsprechend obiger INSTALL-Pfade anpassen - auch für alle nachfolgenden Schritte.
  5. Configure/Generate ausführen.
  6. zlib.sln im Build Verzeichnis ausführen.
  7. RelWithDebInfo Konfiguration auswählen (zwecks Debug-Symbolen, d.h. PDBs).
  8. ALL_BUILD Target bauen.
  9. INSTALL Target bauen.
  10. IlmBase folgendermaßen konfigurieren:
    Screenshot 2015-08-05 19.48.12.png
  11. Configure/Generate ausführen.
  12. ilmbase.sln im Build Verzeichnis ausführen.
  13. RelWithDebInfo Konfiguration auswählen.
  14. ALL_BUILD Target bauen.
  15. INSTALL Target bauen.
  16. OpenEXR folgendermaßen konfigurieren:
    Screenshot 2015-08-05 20.31.11.png

    Dabei Zlib Pfade unter Advanced anpassen und einen Eintrag mit Namen ILMBASE_PACKAGE_PREFIX mit Type PATH und Value Z:/ilmbase_install über den Button Add Entry hinzufügen.
  17. Configure/Generate ausführen.
  18. cmd starten und folgende Befehle ausführen:
    • cmd>set PATH=%PATH%;Z:/ilmbase_install/lib
    • cmd>cd /d z:/openexr_build
    • cmd>openexr.sln
    Wird für das temporäre Bekanntmachen der IlmBase DLLs benötigt, da während dem Bauen von OpenEXR Executables für die Live-Erzeugung von Lookup-Tabellen erstellt und ausgeführt werden (mit Abhängigkeiten zu IlmBase).
  19. RelWithDebInfo Konfiguration auswählen.
  20. ALL_BUILD Target bauen.
  21. INSTALL Target bauen.
  22. Fertig.
Tiles

Re: OpenEXR kompilieren

Beitrag von Tiles »

Woah, super. Vielen Dank :)

Bin dann mal am durchackern =3
Tiles

Re: OpenEXR kompilieren

Beitrag von Tiles »

Nachdem ich das dritte Mal irgendwo die Pfade verkackt habe habe ich es doch noch fehlerfrei hinbekommen. Und meinen Programme (x86) Ordner schmückt nun endlich ein openexr Ordner \o/

Dann kanns ja nun weitergehen mit dem Rest. Nächster Halt OSL. Deswegen ja der Zinnober wegen OpenEXR ^^

Fettes Danke an der Stelle. Ohne die Anweisung wäre ich aufgeschmissen gewesen :)
Antworten