AcademySoftwareFoundation / openexr

The OpenEXR project provides the specification and reference implementation of the EXR file format, the professional-grade image storage format of the motion picture industry.
http://www.openexr.com/
BSD 3-Clause "New" or "Revised" License
1.62k stars 609 forks source link

Imf library missing? #1619

Open abelriboulot opened 7 months ago

abelriboulot commented 7 months ago

Hi! I am currently trying to bundle OpenEXR and Imath together to convert BlackMagic files to .exr. I therefore compiled the two as static libraries, am importing them and am trying to get them to work with a BlackMagic Script meant for OpenEXR 3.1.

The compilation fails over Imf missing symbols such as: Imf::LineOrder Imf::Header Imf::TimeCode Imf::addFramesPerSecond

Etc.

What is this Imf library that I am missing? Why do I manage to compile it when referencing the dynamic libraries of the Homebrew version, but that it fails when linking to the static libraries?

Many thanks,

Abel

meshula commented 7 months ago

We can't tell why your linking fails without seeing how you are linking. In the project readme, we suggest linking with cmake with the following line, but maybe you are doing it a different way.

target_link_libraries(${PROJECT_NAME} OpenEXR::OpenEXR)

OpenEXR::OpenEXR has the names of all the libraries in it, so you shouldn't to worry about all the libraries individually. To partially answer your question, the Imf symbols are in the IlmImf library. I'm not familiar with the homebrew distribution of openexr, so maybe someone else has thoughts about that part of your question.