Hebbut.Net Public Download Area


Public Offerings by Ger Hobbelt - available for download

OpenEXR (for MSVC2005/Win32/Win64)

OpenEXR ( http://www.openexr.com/ ) related material.

NOTE:

You may need the Microsoft Visual Studio 2005 (SP1) C/C++ run rime libraries too if you get error messages about manifest files, etc. (This is NOT the .NET Microsoft redistributable!)

Get the installer for the runtime libraries from Microsoft itself.

OR: try this local copy of the same (as was distributed with the MSVC2005 SP1 setup which was used to create the executable[s] above.

How to build and install OpenEXR from source

For UNIX, please refer to the OpenEXR web site for further documentation.

And on the Windows platform...

... you must have Microsoft Visual Studio 2005 (SP1) installed; open the OpenEXR 'sln' solution in the '.\OpenEXR\vc\vc8\OpenEXR' directory and build. Presto. Well, almost... (see the requirements below)

Requirements for building the source code

Things I changed

WARNING:

This is highly experimental stuff.

... and you'll need the zlib code too, if you want to build from source out of the box.

All Win32 binaries assume a SSE capable CPU. Adjust the compile settings when you have older equipment. (SSE is supported by the oldest AMD AthlonXP family, where Autodesk 3d Studio MAX 2009 has a serious issue with those CPUs regarding Mental Ray, despite the minimum requirements still okaying AthlonXP CPUs. Later versions and anything after that does support SSE2 as well; these projects do not use that CPU feature.)

Changes/Fixes:

CreateDLL now supports x64/IA64. (experimental)

Known Issues (& solutions):

Thanks to Robert Durnin and Jesse Lehrman for calling these in.

1) _eLut / _toFloat linker problems

Q: When you use the OpenEXR projects (or header files) you get one of these linker errors?

foobar.obj : error LNK2019: unresolved external symbol "private: static unsigned short const * const half::_eLut" (?_eLut@half@@0QBGB)
             referenced in function "public: __cdecl half::half(float)" (??0half@@QEAA@M@Z)
foobar.obj : error LNK2019: unresolved external symbol "private: static union half::uif const * const half::_toFloat" (?_toFloat@half@@0QBTuif@1@B)
             referenced in function "public: __cdecl half::operator float(void)const " (??Bhalf@@QEBAMXZ)

A: You are using the OpenEXR dynamically loadable libraries (DLL's) — which is the default — and did not #define OPENEXR_DLL in either your own project settings or in your source code before the OpenEXR headers are #include<>d.

OPENEXR_DLL #define shown in Project Properties dialog

Explanation: In MSVC, static member variables need to be explicitly exported and imported when using these across DLL boundaries. Despite all the magic performed through the OpenEXR CreateDLL tool, you still need to explicitly tell MSVC to declspec(__dllimport) such static member variables or you're SOL. That's what the OPENEXR_DLL #define takes care of for you.

Want to make sure you're not be bitten by this?

Then put this bit of bogus code somewhere in your own application and compile and link. When the _eLut and _toFloat linker errors show up, you know what to do... ;-)

Test code:

#include <Iex.h>
#include <half.h>

float test_linker_for_openEXR(void)
{
  // bogus code to make sure the float/half transforms are hit (eLUT / toFloat)
  half h(0.3);
  float v;

  h *= 2.0;
  v = h;
  while (v < 2)
    v++;
  h = v;
  v -= h / 0.5;
  return v;
}

2) Lots of missing member function linker errors from OpenEXR libraries/DLLs?

Q: It doesn't rain but it pours missing member function linker errors for the OpenEXR DLLs?

A: You're sure you still have the linker options for all the OpenEXR library projects (and all the other projects which use the OpenEXR CreateDLL tool) configured to produce a debug-level MAP file (even in 'Release' builds, and don't worry, CreateDLL in the post-build action will strip the DLL anyhow).

Be aware that the .MAP file export will only 'work' for CreateDLL if you make sure the Linker setting /OPT:NOREF (a.k.a. 'Keep Unreferenced Data') is turned on. This is not the default, so you'd better check.

Remarks: Note that I already took care of this issue in the MSVC projects that come with the local OpenEXR source download below, but you may have inadvertently changed those settings along the way — or, God forbid, I screwed up.

Yet, as the Germans say, "Vertrauen ist gut, Kontrolle ist besser." ("Trusting is good. Checking is better.")

mandatory MAP settings in red in the Project Properties: Linker panelmandatory MAP settings in red in the Project Properties: Linker panel

Downloads

Note: the 7z (7zip) downloads are strongly advised as those will be faster to download (and smaller too). For anyone who does not want to use 7zip for compelling religious reasons (like alarmingly restrictive enforced company policies), we provide a .tar.bz2 file as an alternative for some files. Click on the "bz2" links instead to download these - when available.

Legend

Downloadable archives / files

Compiles on:
Platform
Files / Archives Date/Time Quality Notes

Microsoft WindowsMicrosoft Visual StudioGNUUNIXLinux Penguin

Open SourceMicrosoft Visual StudioGNUUNIXLinux Penguin Microsoft Windows64-bit Microsoft Windows (Intel Itanium)65-bit Microsoft Windows - AMD64 OpenEXR-CVS.20081031.7z (24 Mb)

plus zlib support source code:

Open SourceMicrosoft Visual StudioGNUUNIXLinux Penguin Microsoft Windows64-bit Microsoft Windows (Intel Itanium)65-bit Microsoft Windows - AMD64 libzlib-1.2.3.20081031.7z (1 Mb)

2008-10-31 Beta contains experimental code and all precompiled debug and release .DLL and .EXE binaries

Microsoft WindowsMicrosoft Visual StudioGNUUNIXLinux Penguin

Open SourceMicrosoft Visual StudioGNUUNIXLinux Penguin Microsoft Windows64-bit Microsoft Windows (Intel Itanium)65-bit Microsoft Windows - AMD64 OpenEXR-CVS.20080901.7z (24 Mb)

plus zlib support source code:

Open SourceMicrosoft Visual StudioGNUUNIXLinux Penguin Microsoft Windows64-bit Microsoft Windows (Intel Itanium)65-bit Microsoft Windows - AMD64 libzlib-1.2.3.20080901.7z (1 Mb)

2008-09-01 Beta contains experimental code and all precompiled debug and release .DLL and .EXE binaries

Microsoft Windows

Microsoft Visual Studio 2005 SP1 Redistributable Package

You'll need to install this if you cannot run the compiled executables on your Windows platform:

Microsoft Windows (Win32: 32-bit Windows) Microsoft.Visual.Studio.2005.SP1.Redistributable.Package.(x86).exe

64-bit Microsoft Windows (Intel Itanium) (IA64 / Itanium: 64-bit Windows) Microsoft.Visual.Studio.2005.SP1.Redistributable.Package.(IA64).exe

65-bit Microsoft Windows - AMD64 (x64 / AMD64: 64-bit Windows) Microsoft.Visual.Studio.2005.SP1.Redistributable.Package.(x64).exe

2008-05-24 Production Mirror from Microsoft.