AcademySoftwareFoundation / AcademySoftwareFoundation/OpenColorIO

Error when building shared libs on Windows.

Open
#1,942 1 comment 0 reactions 0 assignees View on GitHub
Build Issue
Dominant language
C++
Stars
2.1k
Forks
503
PR merge metrics
No merged PRs in 30d

Description

Hi!
When building OCIO with shared libs on windows it fails to link correctly with Imath.
I get the following when building with Imath 3.1.10, OpenExr 3.2.1 and OpenColorIO 2.3.2
```
Lut1DOpData.obj : error LNK2001: unresolved external symbol imath_half_to_float_table
OpHelpers.obj : error LNK2001: unresolved external symbol imath_half_to_float_table
CPUProcessor.obj : error LNK2001: unresolved external symbol imath_half_to_float_table
FileFormatDiscreet1DL.obj : error LNK2001: unresolved external symbol imath_half_to_float_table
MathUtils.obj : error LNK2001: unresolved external symbol imath_half_to_float_table
Lut1DOpCPU.obj : error LNK2001: unresolved external symbol imath_half_to_float_table
..\vfxplatform_build\build\OpenColorIO\src\OpenColorIO\Release\OpenColorIO_2_3.dll : fatal error LNK1120: 1 unresolved externals
```
This seem to be a common issue with Imath and I think the solution is to define IMATH_DLL when needed, but I'm not sure where or with what logic it should be defined, but I guess only when building shared on Windows.
In my test to see if I could work around it I just added the define to FindImath.cmake and then it builds correctly.
More info in this Imath ticket https://github.com/AcademySoftwareFoundation/Imath/issues/212#issuecomment-1502764231

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.