OpenEXR 2.2 and OSX

Larry Gritz <[email protected]>
Newsgroups gmane.comp.video.openexr.devel
Message-ID <[email protected]>
I found compiling on OSX Mavericks to be really hard because of my Homebrew installation of 2.1 in /usr/local.  Got lots of errors like this:

...
libtool: link: g++ -dynamiclib  -o .libs/libIlmImfUtil-2_2.22.dylib  .libs/ImfImageChannel.o .libs/ImfFlatImageChannel.o .libs/ImfDeepImageChannel.o .libs/ImfSampleCountChannel.o .libs/ImfImageLevel.o .libs/ImfFlatImageLevel.o .libs/ImfDeepImageLevel.o .libs/ImfImage.o .libs/ImfFlatImage.o .libs/ImfDeepImage.o .libs/ImfImageIO.o .libs/ImfFlatImageIO.o .libs/ImfDeepImageIO.o .libs/ImfImageDataWindow.o   -L/Users/lg/packages/openexr.git/install/lib -L/usr/local/lib -L../IlmImf /Users/lg/packages/openexr.git/install/lib/libImath.dylib /Users/lg/packages/openexr.git/install/lib/libHalf.dylib /Users/lg/packages/openexr.git/install/lib/libIlmThread.dylib /Users/lg/packages/openexr.git/install/lib/libIex.dylib -lpthread -lIlmImf  -O2   -install_name  /Users/lg/packages/openexr.git/install/lib/lib
 IlmImfUtil-2_2.22.dylib -compatibility_version 23 -current_version 23.0 -Wl,-single_module
Undefined symbols for architecture x86_64:
  "Imf_2_2::OutputFile::writePixels(int)", referenced from:
      Imf_2_2::saveFlatScanLineImage(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, Imf_2_2::Header const&, Imf_2_2::FlatImage const&, Imf_2_2::DataWindowSource) in ImfFlatImageIO.o
  "Imf_2_2::OutputFile::setFrameBuffer(Imf_2_2::FrameBuffer const&)", referenced from:
      Imf_2_2::saveFlatScanLineImage(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, Imf_2_2::Header const&, Imf_2_2::FlatImage const&, Imf_2_2::DataWindowSource) in ImfFlatImageIO.o
  "Imf_2_2::OutputFile::OutputFile(char const*, Imf_2_2::Header const&, int)", referenced from:
      Imf_2_2::saveFlatScanLineImage(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, Imf_2_2::Header const&, Imf_2_2::FlatImage const&, Imf_2_2::DataWindowSource) in ImfFlatImageIO.o
... and on and on ...


I just couldn't figure out how to get it to not be confused by the existing OpenEXR installation. I was eventually able to make it work only by temporarily doing:

cd /usr/local/lib
mkdir save
mv *Ilm* save

then building, then moving the 2.1 libraries back to their old spot.

It seems like that shouldn't be necessary. It can't be uncommon to have an older OpenEXR in the system area but be speculatively building 2.2 or a development branch somewhere else. The build system should look to the local build for libraries before any system areas without having to mess with system files, env variables, or special configure arguments.


--
Larry Gritz
[email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.