#57497 closed defect (fixed)
ctlang: Undefined symbols aces_Writer::storeHalfRow etc.
| Reported by: | ryandesign (Ryan Carsten Schmidt) | Owned by: | MarcusCalhoun-Lopez (Marcus Calhoun-Lopez) |
|---|---|---|---|
| Priority: | Normal | Milestone: | |
| Component: | ports | Version: | |
| Keywords: | Cc: | ||
| Port: | ctlang aces_container |
Description
[ 98%] Built target exrdpx
In file included from /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_graphics_ctlang/ctlang/work/CTL-1.5.2/ctlrender/transform.cc:61:
In file included from /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_graphics_ctlang/ctlang/work/CTL-1.5.2/lib/IlmCtl/CtlRcPtr.h:71:
/opt/local/include/OpenEXR/IlmThreadMutex.h:131:15: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using Mutex = std::mutex;
^
1 warning generated.
[100%] Linking CXX executable ctlrender
cd /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_graphics_ctlang/ctlang/work/build/ctlrender && /opt/local/bin/cmake -E cmake_link_script CMakeFiles/ctlrender.dir/link.txt --verbose=ON
/usr/bin/clang++ -pipe -Os -DNDEBUG -I/opt/local/include -stdlib=libc++ -D_THREAD_SAFE -arch x86_64 -mmacosx-version-min=10.13 -Wl,-search_paths_first -Wl,-headerpad_max_install_names -L/opt/local/lib -Wl,-headerpad_max_install_names CMakeFiles/ctlrender.dir/main.cc.o CMakeFiles/ctlrender.dir/transform.cc.o CMakeFiles/ctlrender.dir/usage.cc.o CMakeFiles/ctlrender.dir/aces_file.cc.o CMakeFiles/ctlrender.dir/dpx_file.cc.o CMakeFiles/ctlrender.dir/exr_file.cc.o CMakeFiles/ctlrender.dir/tiff_file.cc.o CMakeFiles/ctlrender.dir/format.cc.o CMakeFiles/ctlrender.dir/compression.cc.o -o ctlrender ../lib/IlmCtlSimd/libIlmCtlSimd.1.5.0.dylib ../lib/IlmCtlMath/libIlmCtlMath.1.5.0.dylib ../lib/IlmCtl/libIlmCtl.1.5.0.dylib ../lib/dpx/libctldpx.a /opt/local/lib/libImath.dylib /opt/local/lib/libHalf.dylib /opt/local/lib/libIex.dylib /opt/local/lib/libIexMath.dylib /opt/local/lib/libIlmThread.dylib /opt/local/lib/libImath.dylib /opt/local/lib/libHalf.dylib /opt/local/lib/libIex.dylib /opt/local/lib/libIexMath.dylib /opt/local/lib/libIlmThread.dylib /opt/local/lib/libtiff.dylib /opt/local/lib/libIlmImf.dylib /opt/local/lib/libImath.dylib /opt/local/lib/libHalf.dylib /opt/local/lib/libIex.dylib /opt/local/lib/libIexMath.dylib /opt/local/lib/libIlmThread.dylib /opt/local/lib/libImath.dylib /opt/local/lib/libHalf.dylib /opt/local/lib/libIex.dylib /opt/local/lib/libIexMath.dylib /opt/local/lib/libIlmThread.dylib -lIex -lIlmThread -lHalf /opt/local/lib/libtiff.dylib /opt/local/lib/libIlmImf.dylib
Undefined symbols for architecture x86_64:
"aces_Writer::storeHalfRow(unsigned short const*, unsigned int)", referenced from:
aces_write(char const*, float, unsigned int, unsigned int, unsigned int, float const*, format_t*) in aces_file.cc.o
"aces_Writer::newImageObject(DynamicMetadata const&)", referenced from:
aces_write(char const*, float, unsigned int, unsigned int, unsigned int, float const*, format_t*) in aces_file.cc.o
"aces_Writer::saveImageObject()", referenced from:
aces_write(char const*, float, unsigned int, unsigned int, unsigned int, float const*, format_t*) in aces_file.cc.o
"aces_Writer::getDefaultHeaderInfo()", referenced from:
aces_write(char const*, float, unsigned int, unsigned int, unsigned int, float const*, format_t*) in aces_file.cc.o
"aces_Writer::configure(MetaWriteClip const&)", referenced from:
aces_write(char const*, float, unsigned int, unsigned int, unsigned int, float const*, format_t*) in aces_file.cc.o
"aces_Writer::aces_Writer()", referenced from:
aces_write(char const*, float, unsigned int, unsigned int, unsigned int, float const*, format_t*) in aces_file.cc.o
"aces_Writer::~aces_Writer()", referenced from:
aces_write(char const*, float, unsigned int, unsigned int, unsigned int, float const*, format_t*) in aces_file.cc.o
"acesHeaderInfo::acesHeaderInfo()", referenced from:
aces_write(char const*, float, unsigned int, unsigned int, unsigned int, float const*, format_t*) in aces_file.cc.o
"keycode::keycode()", referenced from:
aces_write(char const*, float, unsigned int, unsigned int, unsigned int, float const*, format_t*) in aces_file.cc.o
"timecode::timecode(unsigned int, unsigned int)", referenced from:
aces_write(char const*, float, unsigned int, unsigned int, unsigned int, float const*, format_t*) in aces_file.cc.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [ctlrender/ctlrender] Error 1
Now that openexr requires C++14, maybe ctlang does too?
Change History (5)
comment:1 Changed 8 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
comment:2 Changed 8 years ago by ryandesign (Ryan Carsten Schmidt)
Ah, I didn't scroll up to see that. ${prefix}/lib/CMake/AcesContainer/AcesContainerConfig.cmake does exist. The problem is that ${prefix}/lib/CMake is not one of the standard places cmake looks. ${prefix}/lib/cmake is though, so unless you have a case-sensitive filesystem like the buildbot workers do you won't see the problem.
comment:3 Changed 8 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
| Port: | aces_container added |
|---|---|
| Status: | assigned → accepted |
comment:4 Changed 8 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
| Resolution: | → fixed |
|---|---|
| Status: | accepted → closed |
Note: See
TracTickets for help on using
tickets.

The problem seems to be with the installation of aces_container.
From the log file:
CMake Warning at configure.cmake:49 (find_package): By not providing "FindAcesContainer.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "AcesContainer", but CMake did not find one. Could not find a package configuration file provided by "AcesContainer" with any of the following names: AcesContainerConfig.cmake acescontainer-config.cmake Add the installation prefix of "AcesContainer" to CMAKE_PREFIX_PATH or set "AcesContainer_DIR" to a directory containing one of the above files. If "AcesContainer" provides a separate development package or SDK, be sure it has been installed. Call Stack (most recent call first): CMakeLists.txt:54 (include)AcesContainerConfig.cmakeshould be installed by aces_container in${prefix}/lib/CMake/AcesContainer.Because of this,
-lAcesContaineris not part of the link command, hence the error.Unfortunately, none of these problems happen on my systems.
Ryan, may I ask for you help in tracking down why
${prefix}/lib/CMake/AcesContainer/AcesContainerConfig.cmakedoes not seem to exist on the buildbots?Thank you.