Compile on MacOS

Discussion related to the Engine functionality, implementations and API.
u3dreal
Posts: 17
Joined: Tue Dec 03, 2019 3:23 pm

Compile on MacOS

Post by u3dreal » Tue Dec 03, 2019 4:02 pm

Hello everyone ... it's been a long time but some of you might remember me ... from back in the days.

I'm in the process of compiling luxcore on osx 10.13 and i got quite far so far.

The deps compile without issue ...using the script and after compiling and installing oidn 1.1.0 in the macos dir and tweaking the Config_OSX.cmake ... cmake finds all the deps including oidn. I might add it to the build script if this works out.

After fixing src/luxcore/luxparser/luxparse.y line 20 like so

Code: Select all

-%name-prefix "luxcore_parserlxs_yy"
%name-prefix = "luxcore_parserlxs_yy"
and src/luxrays/core/context.cpp line 52 like so since CL_PLATFORM_NOT_FOUND_KHR seems not to be defined.

Code: Select all

-		if (err.err() != CL_PLATFORM_NOT_FOUND_KHR)
			throw;
		//if (err.err() != CL_PLATFORM_NOT_FOUND_KHR)
		//	throw;
luxcore compiles but leave me stranded during linking of luxcoreui and luxconsole with this stupid
"ld: symbol(s) not found for architecture x86_64" error.
It seems clang can not link oiio. Could it be a problem that all the deps are compiled staticly
and osx tries to link dynamicly ?? Is there a way to force static build with clang / osx ? a flag ?

Help would be very much apprechiated and if all works out fine i'm more than happy to build a release for 2.2 .

back again

u3dreal

here is that stupid error

Code: Select all

[ 94%] Linking CXX executable ../../luxcoreconsole
Undefined symbols for architecture x86_64:
  "OpenSubdiv::v3_4_0::Osd::OmpEvaluator::EvalStencils(float const*, OpenSubdiv::v3_4_0::Osd::BufferDescriptor const&, float*, OpenSubdiv::v3_4_0::Osd::BufferDescriptor const&, int const*, int const*, int const*, float const*, int, int)", referenced from:
      bool OpenSubdiv::v3_4_0::Osd::OmpEvaluator::EvalStencils<OpenSubdiv::v3_4_0::Osd::CpuVertexBuffer, OpenSubdiv::v3_4_0::Osd::CpuVertexBuffer, OpenSubdiv::v3_4_0::Far::StencilTable>(OpenSubdiv::v3_4_0::Osd::CpuVertexBuffer*, OpenSubdiv::v3_4_0::Osd::BufferDescriptor const&, OpenSubdiv::v3_4_0::Osd::CpuVertexBuffer*, OpenSubdiv::v3_4_0::Osd::BufferDescriptor const&, OpenSubdiv::v3_4_0::Far::StencilTable const*, OpenSubdiv::v3_4_0::Osd::OmpEvaluator const*, void*) in libslg-core.a(subdiv.cpp.o)
  "boost::system::detail::system_category_ncx()", referenced from:
      OpenImageIO_v1_8::Filesystem::create_directory(OpenImageIO_v1_8::string_view, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) in libOpenImageIO.a(filesystem.cpp.o)
      OpenImageIO_v1_8::Filesystem::copy(OpenImageIO_v1_8::string_view, OpenImageIO_v1_8::string_view, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) in libOpenImageIO.a(filesystem.cpp.o)
      OpenImageIO_v1_8::Filesystem::rename(OpenImageIO_v1_8::string_view, OpenImageIO_v1_8::string_view, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) in libOpenImageIO.a(filesystem.cpp.o)
      OpenImageIO_v1_8::Filesystem::remove(OpenImageIO_v1_8::string_view, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) in libOpenImageIO.a(filesystem.cpp.o)
      OpenImageIO_v1_8::Filesystem::remove_all(OpenImageIO_v1_8::string_view, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) in libOpenImageIO.a(filesystem.cpp.o)
      OpenImageIO_v1_8::Filesystem::temp_directory_path() in libOpenImageIO.a(filesystem.cpp.o)
      OpenImageIO_v1_8::Filesystem::unique_path(OpenImageIO_v1_8::string_view) in libOpenImageIO.a(filesystem.cpp.o)
      ...
  "boost::system::detail::generic_category_ncx()", referenced from:
      boost::system::error_category::std_category::equivalent(int, std::__1::error_condition const&) const in libOpenImageIO.a(socketinput.cpp.o)
      boost::system::error_category::std_category::equivalent(std::__1::error_code const&, int) const in libOpenImageIO.a(socketinput.cpp.o)
      boost::system::error_category::std_category::equivalent(int, std::__1::error_condition const&) const in libOpenImageIO.a(socketoutput.cpp.o)
      boost::system::error_category::std_category::equivalent(std::__1::error_code const&, int) const in libOpenImageIO.a(socketoutput.cpp.o)
      boost::system::error_category::std_category::equivalent(int, std::__1::error_condition const&) const in libOpenImageIO.a(socket_pvt.cpp.o)
      boost::system::error_category::std_category::equivalent(std::__1::error_code const&, int) const in libOpenImageIO.a(socket_pvt.cpp.o)
  "Iex_2_3::throwErrnoExc()", referenced from:
      OpenImageIO_v1_8::OpenEXRInputStream::OpenEXRInputStream(char const*) in libOpenImageIO.a(exrinput.cpp.o)
      OpenImageIO_v1_8::OpenEXRInputStream::read(char*, int) in libOpenImageIO.a(exrinput.cpp.o)
      OpenImageIO_v1_8::OpenEXRInputStream::seekg(unsigned long) in libOpenImageIO.a(exrinput.cpp.o)
      OpenImageIO_v1_8::OpenEXROutputStream::OpenEXROutputStream(char const*) in libOpenImageIO.a(exroutput.cpp.o)
      OpenImageIO_v1_8::OpenEXROutputStream::write(char const*, int) in libOpenImageIO.a(exroutput.cpp.o)
      OpenImageIO_v1_8::OpenEXROutputStream::seekp(unsigned long) in libOpenImageIO.a(exroutput.cpp.o)
  "Iex_2_3::BaseExc::BaseExc(char const*)", referenced from:
      Imath_2_3::SingMatrixExc::SingMatrixExc(char const*) in libOpenImageIO.a(imagebufalgo_xform.cpp.o)
      Iex_2_3::InputExc::InputExc(char const*) in libOpenImageIO.a(exrinput.cpp.o)
      Iex_2_3::ErrnoExc::ErrnoExc(char const*) in libOpenImageIO.a(exroutput.cpp.o)
      Iex_2_3::TypeExc::TypeExc(char const*) in libOpenImageIO.a(exroutput.cpp.o)
      Iex_2_3::TypeExc::TypeExc(char const*) in libOpenImageIO.a(exroutput.cpp.o)
      Imath_2_3::SingMatrixExc::SingMatrixExc(char const*) in libOpenImageIO.a(texturesys.cpp.o)
  "Iex_2_3::BaseExc::~BaseExc()", referenced from:
      Imath_2_3::SingMatrixExc::~SingMatrixExc() in libOpenImageIO.a(imagebufalgo_xform.cpp.o)
      Imath_2_3::SingMatrixExc::~SingMatrixExc() in libOpenImageIO.a(imagebufalgo_xform.cpp.o)
      Iex_2_3::InputExc::~InputExc() in libOpenImageIO.a(exrinput.cpp.o)
      Iex_2_3::InputExc::~InputExc() in libOpenImageIO.a(exrinput.cpp.o)
      Iex_2_3::ErrnoExc::~ErrnoExc() in libOpenImageIO.a(exroutput.cpp.o)
      Iex_2_3::ErrnoExc::~ErrnoExc() in libOpenImageIO.a(exroutput.cpp.o)
      Iex_2_3::TypeExc::~TypeExc() in libOpenImageIO.a(exroutput.cpp.o)
      ...
 
 
 .........
 
      OpenImageIO_v1_8::OpenEXRInput::read_native_deep_scanlines(int, int, int, int, int, OpenImageIO_v1_8::DeepData&) in libOpenImageIO.a(exrinput.cpp.o)
      OpenImageIO_v1_8::OpenEXRInput::read_native_deep_tiles(int, int, int, int, int, int, int, int, OpenImageIO_v1_8::DeepData&) in libOpenImageIO.a(exrinput.cpp.o)
      OpenImageIO_v1_8::OpenEXROutput::write_deep_scanlines(int, int, int, OpenImageIO_v1_8::DeepData const&) in libOpenImageIO.a(exroutput.cpp.o)
      OpenImageIO_v1_8::OpenEXROutput::write_deep_tiles(int, int, int, int, int, int, OpenImageIO_v1_8::DeepData const&) in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::DeepFrameBuffer::insert(char const*, Imf_2_3::DeepSlice const&)", referenced from:
      OpenImageIO_v1_8::OpenEXRInput::read_native_deep_scanlines(int, int, int, int, int, OpenImageIO_v1_8::DeepData&) in libOpenImageIO.a(exrinput.cpp.o)
      OpenImageIO_v1_8::OpenEXRInput::read_native_deep_tiles(int, int, int, int, int, int, int, int, OpenImageIO_v1_8::DeepData&) in libOpenImageIO.a(exrinput.cpp.o)
      OpenImageIO_v1_8::OpenEXROutput::write_deep_scanlines(int, int, int, OpenImageIO_v1_8::DeepData const&) in libOpenImageIO.a(exroutput.cpp.o)
      OpenImageIO_v1_8::OpenEXROutput::write_deep_tiles(int, int, int, int, int, int, OpenImageIO_v1_8::DeepData const&) in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::TiledOutputFile::writeTiles(int, int, int, int, int, int)", referenced from:
      OpenImageIO_v1_8::OpenEXROutput::write_tiles(int, int, int, int, int, int, OpenImageIO_v1_8::TypeDesc, void const*, long, long, long) in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::TiledOutputFile::setFrameBuffer(Imf_2_3::FrameBuffer const&)", referenced from:
      OpenImageIO_v1_8::OpenEXROutput::write_tiles(int, int, int, int, int, int, OpenImageIO_v1_8::TypeDesc, void const*, long, long, long) in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::TiledOutputFile::TiledOutputFile(Imf_2_3::OStream&, Imf_2_3::Header const&, int)", referenced from:
      OpenImageIO_v1_8::OpenEXROutput::open(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, OpenImageIO_v1_8::ImageSpec const&, OpenImageIO_v1_8::ImageOutput::OpenMode) in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::TiledOutputPart::writeTiles(int, int, int, int, int, int)", referenced from:
      OpenImageIO_v1_8::OpenEXROutput::write_tiles(int, int, int, int, int, int, OpenImageIO_v1_8::TypeDesc, void const*, long, long, long) in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::TiledOutputPart::setFrameBuffer(Imf_2_3::FrameBuffer const&)", referenced from:
      OpenImageIO_v1_8::OpenEXROutput::write_tiles(int, int, int, int, int, int, OpenImageIO_v1_8::TypeDesc, void const*, long, long, long) in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::TiledOutputPart::TiledOutputPart(Imf_2_3::MultiPartOutputFile&, int)", referenced from:
      OpenImageIO_v1_8::OpenEXROutput::open(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, OpenImageIO_v1_8::ImageSpec const&, OpenImageIO_v1_8::ImageOutput::OpenMode) in libOpenImageIO.a(exroutput.cpp.o)
      OpenImageIO_v1_8::OpenEXROutput::open(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, OpenImageIO_v1_8::ImageSpec const*) in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::globalThreadCount()", referenced from:
      OpenImageIO_v1_8::OpenEXRInput::open(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, OpenImageIO_v1_8::ImageSpec&) in libOpenImageIO.a(exrinput.cpp.o)
      OpenImageIO_v1_8::OpenEXROutput::open(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, OpenImageIO_v1_8::ImageSpec const&, OpenImageIO_v1_8::ImageOutput::OpenMode) in libOpenImageIO.a(exroutput.cpp.o)
      OpenImageIO_v1_8::OpenEXROutput::open(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, OpenImageIO_v1_8::ImageSpec const*) in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::DeepTiledInputPart::setFrameBuffer(Imf_2_3::DeepFrameBuffer const&)", referenced from:
      OpenImageIO_v1_8::OpenEXRInput::read_native_deep_tiles(int, int, int, int, int, int, int, int, OpenImageIO_v1_8::DeepData&) in libOpenImageIO.a(exrinput.cpp.o)
  "Imf_2_3::DeepTiledInputPart::readPixelSampleCounts(int, int, int, int, int)", referenced from:
      OpenImageIO_v1_8::OpenEXRInput::read_native_deep_tiles(int, int, int, int, int, int, int, int, OpenImageIO_v1_8::DeepData&) in libOpenImageIO.a(exrinput.cpp.o)
  "Imf_2_3::DeepTiledInputPart::readTiles(int, int, int, int, int, int)", referenced from:
      OpenImageIO_v1_8::OpenEXRInput::read_native_deep_tiles(int, int, int, int, int, int, int, int, OpenImageIO_v1_8::DeepData&) in libOpenImageIO.a(exrinput.cpp.o)
  "Imf_2_3::DeepTiledInputPart::DeepTiledInputPart(Imf_2_3::MultiPartInputFile&, int)", referenced from:
      OpenImageIO_v1_8::OpenEXRInput::seek_subimage(int, int, OpenImageIO_v1_8::ImageSpec&) in libOpenImageIO.a(exrinput.cpp.o)
  "Imf_2_3::MultiPartInputFile::MultiPartInputFile(Imf_2_3::IStream&, int, bool)", referenced from:
      OpenImageIO_v1_8::OpenEXRInput::open(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, OpenImageIO_v1_8::ImageSpec&) in libOpenImageIO.a(exrinput.cpp.o)
  "Imf_2_3::DeepTiledOutputPart::writeTiles(int, int, int, int, int, int)", referenced from:
      OpenImageIO_v1_8::OpenEXROutput::write_deep_tiles(int, int, int, int, int, int, OpenImageIO_v1_8::DeepData const&) in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::DeepTiledOutputPart::setFrameBuffer(Imf_2_3::DeepFrameBuffer const&)", referenced from:
      OpenImageIO_v1_8::OpenEXROutput::write_deep_tiles(int, int, int, int, int, int, OpenImageIO_v1_8::DeepData const&) in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::DeepTiledOutputPart::DeepTiledOutputPart(Imf_2_3::MultiPartOutputFile&, int)", referenced from:
      OpenImageIO_v1_8::OpenEXROutput::open(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, OpenImageIO_v1_8::ImageSpec const&, OpenImageIO_v1_8::ImageOutput::OpenMode) in libOpenImageIO.a(exroutput.cpp.o)
      OpenImageIO_v1_8::OpenEXROutput::open(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, OpenImageIO_v1_8::ImageSpec const*) in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::MultiPartOutputFile::MultiPartOutputFile(char const*, Imf_2_3::Header const*, int, bool, int)", referenced from:
      OpenImageIO_v1_8::OpenEXROutput::open(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, OpenImageIO_v1_8::ImageSpec const*) in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::setGlobalThreadCount(int)", referenced from:
      OpenImageIO_v1_8::pvt::set_exr_threads() in libOpenImageIO.a(exrinput.cpp.o)
  "Imf_2_3::DeepScanLineInputPart::readPixels(int, int)", referenced from:
      OpenImageIO_v1_8::OpenEXRInput::read_native_deep_scanlines(int, int, int, int, int, OpenImageIO_v1_8::DeepData&) in libOpenImageIO.a(exrinput.cpp.o)
  "Imf_2_3::DeepScanLineInputPart::setFrameBuffer(Imf_2_3::DeepFrameBuffer const&)", referenced from:
      OpenImageIO_v1_8::OpenEXRInput::read_native_deep_scanlines(int, int, int, int, int, OpenImageIO_v1_8::DeepData&) in libOpenImageIO.a(exrinput.cpp.o)
  "Imf_2_3::DeepScanLineInputPart::readPixelSampleCounts(int, int)", referenced from:
      OpenImageIO_v1_8::OpenEXRInput::read_native_deep_scanlines(int, int, int, int, int, OpenImageIO_v1_8::DeepData&) in libOpenImageIO.a(exrinput.cpp.o)
  "Imf_2_3::DeepScanLineInputPart::DeepScanLineInputPart(Imf_2_3::MultiPartInputFile&, int)", referenced from:
      OpenImageIO_v1_8::OpenEXRInput::seek_subimage(int, int, OpenImageIO_v1_8::ImageSpec&) in libOpenImageIO.a(exrinput.cpp.o)
  "Imf_2_3::DeepScanLineOutputPart::writePixels(int)", referenced from:
      OpenImageIO_v1_8::OpenEXROutput::write_deep_scanlines(int, int, int, OpenImageIO_v1_8::DeepData const&) in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::DeepScanLineOutputPart::setFrameBuffer(Imf_2_3::DeepFrameBuffer const&)", referenced from:
      OpenImageIO_v1_8::OpenEXROutput::write_deep_scanlines(int, int, int, OpenImageIO_v1_8::DeepData const&) in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::DeepScanLineOutputPart::DeepScanLineOutputPart(Imf_2_3::MultiPartOutputFile&, int)", referenced from:
      OpenImageIO_v1_8::OpenEXROutput::open(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, OpenImageIO_v1_8::ImageSpec const&, OpenImageIO_v1_8::ImageOutput::OpenMode) in libOpenImageIO.a(exroutput.cpp.o)
      OpenImageIO_v1_8::OpenEXROutput::open(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, OpenImageIO_v1_8::ImageSpec const*) in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::Slice::Slice(Imf_2_3::PixelType, char*, unsigned long, unsigned long, int, int, double, bool, bool)", referenced from:
      OpenImageIO_v1_8::OpenEXRInput::read_native_scanlines(int, int, int, int, int, void*) in libOpenImageIO.a(exrinput.cpp.o)
      OpenImageIO_v1_8::OpenEXRInput::read_native_tiles(int, int, int, int, int, int, int, int, void*) in libOpenImageIO.a(exrinput.cpp.o)
      OpenImageIO_v1_8::OpenEXRInput::read_native_deep_scanlines(int, int, int, int, int, OpenImageIO_v1_8::DeepData&) in libOpenImageIO.a(exrinput.cpp.o)
      OpenImageIO_v1_8::OpenEXRInput::read_native_deep_tiles(int, int, int, int, int, int, int, int, OpenImageIO_v1_8::DeepData&) in libOpenImageIO.a(exrinput.cpp.o)
      OpenImageIO_v1_8::OpenEXROutput::write_scanline(int, int, OpenImageIO_v1_8::TypeDesc, void const*, long) in libOpenImageIO.a(exroutput.cpp.o)
      OpenImageIO_v1_8::OpenEXROutput::write_scanlines(int, int, int, OpenImageIO_v1_8::TypeDesc, void const*, long, long) in libOpenImageIO.a(exroutput.cpp.o)
      OpenImageIO_v1_8::OpenEXROutput::write_tiles(int, int, int, int, int, int, OpenImageIO_v1_8::TypeDesc, void const*, long, long, long) in libOpenImageIO.a(exroutput.cpp.o)
      ...
  "Imf_2_3::Header::compression()", referenced from:
      OpenImageIO_v1_8::OpenEXROutput::put_parameter(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, OpenImageIO_v1_8::TypeDesc, void const*, Imf_2_3::Header&) in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::Header::setTileDescription(Imf_2_3::TileDescription const&)", referenced from:
      OpenImageIO_v1_8::OpenEXROutput::spec_to_header(OpenImageIO_v1_8::ImageSpec&, int, Imf_2_3::Header&) in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::Header::insert(char const*, Imf_2_3::Attribute const&)", referenced from:
      OpenImageIO_v1_8::OpenEXROutput::spec_to_header(OpenImageIO_v1_8::ImageSpec&, int, Imf_2_3::Header&) in libOpenImageIO.a(exroutput.cpp.o)
      OpenImageIO_v1_8::OpenEXROutput::put_parameter(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, OpenImageIO_v1_8::TypeDesc, void const*, Imf_2_3::Header&) in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::Header::setType(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
      OpenImageIO_v1_8::OpenEXROutput::open(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, OpenImageIO_v1_8::ImageSpec const*) in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::Header::channels()", referenced from:
      OpenImageIO_v1_8::OpenEXROutput::spec_to_header(OpenImageIO_v1_8::ImageSpec&, int, Imf_2_3::Header&) in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::Header::lineOrder()", referenced from:
      OpenImageIO_v1_8::OpenEXROutput::put_parameter(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, OpenImageIO_v1_8::TypeDesc, void const*, Imf_2_3::Header&) in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::Header::Header(Imath_2_3::Box<Imath_2_3::Vec2<int> > const&, Imath_2_3::Box<Imath_2_3::Vec2<int> > const&, float, Imath_2_3::Vec2<float> const&, float, Imf_2_3::LineOrder, Imf_2_3::Compression)", referenced from:
      OpenImageIO_v1_8::OpenEXROutput::spec_to_header(OpenImageIO_v1_8::ImageSpec&, int, Imf_2_3::Header&) in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::Header::Header(Imf_2_3::Header const&)", referenced from:
      std::__1::vector<Imf_2_3::Header, std::__1::allocator<Imf_2_3::Header> >::__append(unsigned long) in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::Header::Header(int, int, float, Imath_2_3::Vec2<float> const&, float, Imf_2_3::LineOrder, Imf_2_3::Compression)", referenced from:
      std::__1::vector<Imf_2_3::Header, std::__1::allocator<Imf_2_3::Header> >::__append(unsigned long) in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::Header::~Header()", referenced from:
      OpenImageIO_v1_8::OpenEXROutput::OpenEXROutput() in libOpenImageIO.a(exroutput.cpp.o)
      OpenImageIO_v1_8::OpenEXROutput::init() in libOpenImageIO.a(exroutput.cpp.o)
      OpenImageIO_v1_8::OpenEXROutput::~OpenEXROutput() in libOpenImageIO.a(exroutput.cpp.o)
      OpenImageIO_v1_8::OpenEXROutput::open(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, OpenImageIO_v1_8::ImageSpec const&, OpenImageIO_v1_8::ImageOutput::OpenMode) in libOpenImageIO.a(exroutput.cpp.o)
      OpenImageIO_v1_8::OpenEXROutput::open(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, OpenImageIO_v1_8::ImageSpec const*) in libOpenImageIO.a(exroutput.cpp.o)
      OpenImageIO_v1_8::OpenEXROutput::spec_to_header(OpenImageIO_v1_8::ImageSpec&, int, Imf_2_3::Header&) in libOpenImageIO.a(exroutput.cpp.o)
      std::__1::vector<Imf_2_3::Header, std::__1::allocator<Imf_2_3::Header> >::__append(unsigned long) in libOpenImageIO.a(exroutput.cpp.o)
      ...
  "Imf_2_3::Header::operator=(Imf_2_3::Header const&)", referenced from:
      OpenImageIO_v1_8::OpenEXROutput::spec_to_header(OpenImageIO_v1_8::ImageSpec&, int, Imf_2_3::Header&) in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::Channel::Channel(Imf_2_3::PixelType, int, int, bool)", referenced from:
      OpenImageIO_v1_8::OpenEXROutput::spec_to_header(OpenImageIO_v1_8::ImageSpec&, int, Imf_2_3::Header&) in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::IStream::readMemoryMapped(int)", referenced from:
      vtable for OpenImageIO_v1_8::OpenEXRInputStream in libOpenImageIO.a(exrinput.cpp.o)
  "Imf_2_3::IStream::IStream(char const*)", referenced from:
      OpenImageIO_v1_8::OpenEXRInputStream::OpenEXRInputStream(char const*) in libOpenImageIO.a(exrinput.cpp.o)
  "Imf_2_3::IStream::~IStream()", referenced from:
      OpenImageIO_v1_8::OpenEXRInput::valid_file(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) const in libOpenImageIO.a(exrinput.cpp.o)
      OpenImageIO_v1_8::OpenEXRInputStream::~OpenEXRInputStream() in libOpenImageIO.a(exrinput.cpp.o)
      OpenImageIO_v1_8::OpenEXRInputStream::OpenEXRInputStream(char const*) in libOpenImageIO.a(exrinput.cpp.o)
      OpenImageIO_v1_8::OpenEXRInputStream::~OpenEXRInputStream() in libOpenImageIO.a(exrinput.cpp.o)
  "Imf_2_3::KeyCode::KeyCode(Imf_2_3::KeyCode const&)", referenced from:
      OpenImageIO_v1_8::OpenEXROutput::put_parameter(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, OpenImageIO_v1_8::TypeDesc, void const*, Imf_2_3::Header&) in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::KeyCode::KeyCode(int, int, int, int, int, int, int)", referenced from:
      Imf_2_3::TypedAttribute<Imf_2_3::KeyCode>::copy() const in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::KeyCode::operator=(Imf_2_3::KeyCode const&)", referenced from:
      Imf_2_3::TypedAttribute<Imf_2_3::KeyCode>::copyValueFrom(Imf_2_3::Attribute const&) in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::OStream::OStream(char const*)", referenced from:
      OpenImageIO_v1_8::OpenEXROutputStream::OpenEXROutputStream(char const*) in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::OStream::~OStream()", referenced from:
      OpenImageIO_v1_8::OpenEXROutputStream::OpenEXROutputStream(char const*) in libOpenImageIO.a(exroutput.cpp.o)
      OpenImageIO_v1_8::OpenEXROutputStream::~OpenEXROutputStream() in libOpenImageIO.a(exroutput.cpp.o)
      OpenImageIO_v1_8::OpenEXROutputStream::~OpenEXROutputStream() in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::TimeCode::TimeCode(Imf_2_3::TimeCode const&)", referenced from:
      OpenImageIO_v1_8::ImageSpec::metadata_val(OpenImageIO_v1_8::ParamValue const&, bool) in libOpenImageIO.a(formatspec.cpp.o)
      OpenImageIO_v1_8::spec_to_xml(OpenImageIO_v1_8::ImageSpec const&, OpenImageIO_v1_8::ImageSpec::SerialVerbose) in libOpenImageIO.a(formatspec.cpp.o)
      OpenImageIO_v1_8::OpenEXROutput::put_parameter(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, OpenImageIO_v1_8::TypeDesc, void const*, Imf_2_3::Header&) in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::TimeCode::TimeCode(unsigned int, unsigned int, Imf_2_3::TimeCode::Packing)", referenced from:
      OpenImageIO_v1_8::DPXInput::seek_subimage(int, int, OpenImageIO_v1_8::ImageSpec&) in libOpenImageIO.a(dpxinput.cpp.o)
  "Imf_2_3::TimeCode::TimeCode()", referenced from:
      Imf_2_3::TypedAttribute<Imf_2_3::TimeCode>::copy() const in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::TimeCode::operator=(Imf_2_3::TimeCode const&)", referenced from:
      Imf_2_3::TypedAttribute<Imf_2_3::TimeCode>::copyValueFrom(Imf_2_3::Attribute const&) in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::Attribute::Attribute()", referenced from:
      OpenImageIO_v1_8::OpenEXROutput::spec_to_header(OpenImageIO_v1_8::ImageSpec&, int, Imf_2_3::Header&) in libOpenImageIO.a(exroutput.cpp.o)
      OpenImageIO_v1_8::OpenEXROutput::put_parameter(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, OpenImageIO_v1_8::TypeDesc, void const*, Imf_2_3::Header&) in libOpenImageIO.a(exroutput.cpp.o)
      Imf_2_3::TypedAttribute<Imf_2_3::Envmap>::copy() const in libOpenImageIO.a(exroutput.cpp.o)
      Imf_2_3::TypedAttribute<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::copy() const in libOpenImageIO.a(exroutput.cpp.o)
      Imf_2_3::TypedAttribute<int>::copy() const in libOpenImageIO.a(exroutput.cpp.o)
      Imf_2_3::TypedAttribute<float>::copy() const in libOpenImageIO.a(exroutput.cpp.o)
      Imf_2_3::TypedAttribute<double>::copy() const in libOpenImageIO.a(exroutput.cpp.o)
      ...
  "Imf_2_3::Attribute::~Attribute()", referenced from:
      OpenImageIO_v1_8::OpenEXROutput::spec_to_header(OpenImageIO_v1_8::ImageSpec&, int, Imf_2_3::Header&) in libOpenImageIO.a(exroutput.cpp.o)
      Imf_2_3::TypedAttribute<Imf_2_3::Envmap>::~TypedAttribute() in libOpenImageIO.a(exroutput.cpp.o)
      OpenImageIO_v1_8::OpenEXROutput::put_parameter(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, OpenImageIO_v1_8::TypeDesc, void const*, Imf_2_3::Header&) in libOpenImageIO.a(exroutput.cpp.o)
      Imf_2_3::TypedAttribute<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::~TypedAttribute() in libOpenImageIO.a(exroutput.cpp.o)
      Imf_2_3::TypedAttribute<int>::~TypedAttribute() in libOpenImageIO.a(exroutput.cpp.o)
      Imf_2_3::TypedAttribute<float>::~TypedAttribute() in libOpenImageIO.a(exroutput.cpp.o)
      Imf_2_3::TypedAttribute<double>::~TypedAttribute() in libOpenImageIO.a(exroutput.cpp.o)
      ...
  "Imf_2_3::DeepSlice::DeepSlice(Imf_2_3::PixelType, char*, unsigned long, unsigned long, unsigned long, int, int, double, bool, bool)", referenced from:
      OpenImageIO_v1_8::OpenEXRInput::read_native_deep_scanlines(int, int, int, int, int, OpenImageIO_v1_8::DeepData&) in libOpenImageIO.a(exrinput.cpp.o)
      OpenImageIO_v1_8::OpenEXRInput::read_native_deep_tiles(int, int, int, int, int, int, int, int, OpenImageIO_v1_8::DeepData&) in libOpenImageIO.a(exrinput.cpp.o)
      OpenImageIO_v1_8::OpenEXROutput::write_deep_scanlines(int, int, int, OpenImageIO_v1_8::DeepData const&) in libOpenImageIO.a(exroutput.cpp.o)
      OpenImageIO_v1_8::OpenEXROutput::write_deep_tiles(int, int, int, int, int, int, OpenImageIO_v1_8::DeepData const&) in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::InputFile::readPixels(int, int)", referenced from:
      OpenImageIO_v1_8::OpenEXRInput::read_native_scanlines(int, int, int, int, int, void*) in libOpenImageIO.a(exrinput.cpp.o)
  "Imf_2_3::InputFile::setFrameBuffer(Imf_2_3::FrameBuffer const&)", referenced from:
      OpenImageIO_v1_8::OpenEXRInput::read_native_scanlines(int, int, int, int, int, void*) in libOpenImageIO.a(exrinput.cpp.o)
  "Imf_2_3::InputPart::readPixels(int, int)", referenced from:
      OpenImageIO_v1_8::OpenEXRInput::read_native_scanlines(int, int, int, int, int, void*) in libOpenImageIO.a(exrinput.cpp.o)
  "Imf_2_3::InputPart::setFrameBuffer(Imf_2_3::FrameBuffer const&)", referenced from:
      OpenImageIO_v1_8::OpenEXRInput::read_native_scanlines(int, int, int, int, int, void*) in libOpenImageIO.a(exrinput.cpp.o)
  "Imf_2_3::InputPart::InputPart(Imf_2_3::MultiPartInputFile&, int)", referenced from:
      OpenImageIO_v1_8::OpenEXRInput::seek_subimage(int, int, OpenImageIO_v1_8::ImageSpec&) in libOpenImageIO.a(exrinput.cpp.o)
  "Iex_2_3::BaseExc::what() const", referenced from:
      vtable for Imath_2_3::SingMatrixExc in libOpenImageIO.a(imagebufalgo_xform.cpp.o)
      vtable for Iex_2_3::InputExc in libOpenImageIO.a(exrinput.cpp.o)
      vtable for Iex_2_3::ErrnoExc in libOpenImageIO.a(exroutput.cpp.o)
      vtable for Iex_2_3::TypeExc in libOpenImageIO.a(exroutput.cpp.o)
      vtable for Imath_2_3::SingMatrixExc in libOpenImageIO.a(texturesys.cpp.o)
  "Imf_2_3::ChannelList::end() const", referenced from:
      OpenImageIO_v1_8::OpenEXRInput::PartInfo::query_channels(OpenImageIO_v1_8::OpenEXRInput*, Imf_2_3::Header const*) in libOpenImageIO.a(exrinput.cpp.o)
  "Imf_2_3::ChannelList::begin() const", referenced from:
      OpenImageIO_v1_8::OpenEXRInput::PartInfo::query_channels(OpenImageIO_v1_8::OpenEXRInput*, Imf_2_3::Header const*) in libOpenImageIO.a(exrinput.cpp.o)
  "Imf_2_3::TypedAttribute<Imath_2_3::Box<Imath_2_3::Vec2<float> > >::writeValueTo(Imf_2_3::OStream&, int) const", referenced from:
      vtable for Imf_2_3::TypedAttribute<Imath_2_3::Box<Imath_2_3::Vec2<float> > > in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::TypedAttribute<Imath_2_3::Box<Imath_2_3::Vec2<int> > >::writeValueTo(Imf_2_3::OStream&, int) const", referenced from:
      vtable for Imf_2_3::TypedAttribute<Imath_2_3::Box<Imath_2_3::Vec2<int> > > in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::TypedAttribute<Imath_2_3::Vec2<double> >::writeValueTo(Imf_2_3::OStream&, int) const", referenced from:
      vtable for Imf_2_3::TypedAttribute<Imath_2_3::Vec2<double> > in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::TypedAttribute<Imath_2_3::Vec2<float> >::writeValueTo(Imf_2_3::OStream&, int) const", referenced from:
      vtable for Imf_2_3::TypedAttribute<Imath_2_3::Vec2<float> > in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::TypedAttribute<Imath_2_3::Vec2<int> >::writeValueTo(Imf_2_3::OStream&, int) const", referenced from:
      vtable for Imf_2_3::TypedAttribute<Imath_2_3::Vec2<int> > in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::TypedAttribute<Imath_2_3::Vec3<double> >::writeValueTo(Imf_2_3::OStream&, int) const", referenced from:
      vtable for Imf_2_3::TypedAttribute<Imath_2_3::Vec3<double> > in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::TypedAttribute<Imath_2_3::Vec3<float> >::writeValueTo(Imf_2_3::OStream&, int) const", referenced from:
      vtable for Imf_2_3::TypedAttribute<Imath_2_3::Vec3<float> > in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::TypedAttribute<Imath_2_3::Vec3<int> >::writeValueTo(Imf_2_3::OStream&, int) const", referenced from:
      vtable for Imf_2_3::TypedAttribute<Imath_2_3::Vec3<int> > in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::TypedAttribute<Imath_2_3::Matrix33<double> >::writeValueTo(Imf_2_3::OStream&, int) const", referenced from:
      vtable for Imf_2_3::TypedAttribute<Imath_2_3::Matrix33<double> > in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::TypedAttribute<Imath_2_3::Matrix33<float> >::writeValueTo(Imf_2_3::OStream&, int) const", referenced from:
      vtable for Imf_2_3::TypedAttribute<Imath_2_3::Matrix33<float> > in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::TypedAttribute<Imath_2_3::Matrix44<double> >::writeValueTo(Imf_2_3::OStream&, int) const", referenced from:
      vtable for Imf_2_3::TypedAttribute<Imath_2_3::Matrix44<double> > in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::TypedAttribute<Imath_2_3::Matrix44<float> >::writeValueTo(Imf_2_3::OStream&, int) const", referenced from:
      vtable for Imf_2_3::TypedAttribute<Imath_2_3::Matrix44<float> > in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::TypedAttribute<Imf_2_3::Chromaticities>::writeValueTo(Imf_2_3::OStream&, int) const", referenced from:
      vtable for Imf_2_3::TypedAttribute<Imf_2_3::Chromaticities> in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::TypedAttribute<Imf_2_3::Envmap>::writeValueTo(Imf_2_3::OStream&, int) const", referenced from:
      vtable for Imf_2_3::TypedAttribute<Imf_2_3::Envmap> in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::TypedAttribute<Imf_2_3::KeyCode>::writeValueTo(Imf_2_3::OStream&, int) const", referenced from:
      vtable for Imf_2_3::TypedAttribute<Imf_2_3::KeyCode> in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::TypedAttribute<Imf_2_3::Rational>::writeValueTo(Imf_2_3::OStream&, int) const", referenced from:
      vtable for Imf_2_3::TypedAttribute<Imf_2_3::Rational> in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::TypedAttribute<Imf_2_3::TimeCode>::writeValueTo(Imf_2_3::OStream&, int) const", referenced from:
      vtable for Imf_2_3::TypedAttribute<Imf_2_3::TimeCode> in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::TypedAttribute<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::writeValueTo(Imf_2_3::OStream&, int) const", referenced from:
      vtable for Imf_2_3::TypedAttribute<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::TypedAttribute<std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >::writeValueTo(Imf_2_3::OStream&, int) const", referenced from:
      vtable for Imf_2_3::TypedAttribute<std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > > in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::MultiPartInputFile::parts() const", referenced from:
      OpenImageIO_v1_8::OpenEXRInput::open(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, OpenImageIO_v1_8::ImageSpec&) in libOpenImageIO.a(exrinput.cpp.o)
  "Imf_2_3::MultiPartInputFile::header(int) const", referenced from:
      OpenImageIO_v1_8::OpenEXRInput::seek_subimage(int, int, OpenImageIO_v1_8::ImageSpec&) in libOpenImageIO.a(exrinput.cpp.o)
  "Imf_2_3::Header::dataWindow() const", referenced from:
      OpenImageIO_v1_8::OpenEXRInput::PartInfo::parse_header(OpenImageIO_v1_8::OpenEXRInput*, Imf_2_3::Header const*) in libOpenImageIO.a(exrinput.cpp.o)
  "Imf_2_3::Header::displayWindow() const", referenced from:
      OpenImageIO_v1_8::OpenEXRInput::PartInfo::parse_header(OpenImageIO_v1_8::OpenEXRInput*, Imf_2_3::Header const*) in libOpenImageIO.a(exrinput.cpp.o)
  "Imf_2_3::Header::tileDescription() const", referenced from:
      OpenImageIO_v1_8::OpenEXRInput::PartInfo::parse_header(OpenImageIO_v1_8::OpenEXRInput*, Imf_2_3::Header const*) in libOpenImageIO.a(exrinput.cpp.o)
  "Imf_2_3::Header::hasTileDescription() const", referenced from:
      OpenImageIO_v1_8::OpenEXRInput::PartInfo::parse_header(OpenImageIO_v1_8::OpenEXRInput*, Imf_2_3::Header const*) in libOpenImageIO.a(exrinput.cpp.o)
      OpenImageIO_v1_8::OpenEXROutput::put_parameter(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, OpenImageIO_v1_8::TypeDesc, void const*, Imf_2_3::Header&) in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::Header::end() const", referenced from:
      OpenImageIO_v1_8::OpenEXRInput::PartInfo::parse_header(OpenImageIO_v1_8::OpenEXRInput*, Imf_2_3::Header const*) in libOpenImageIO.a(exrinput.cpp.o)
  "Imf_2_3::Header::name() const", referenced from:
      OpenImageIO_v1_8::OpenEXRInput::PartInfo::parse_header(OpenImageIO_v1_8::OpenEXRInput*, Imf_2_3::Header const*) in libOpenImageIO.a(exrinput.cpp.o)
  "Imf_2_3::Header::type() const", referenced from:
      OpenImageIO_v1_8::OpenEXRInput::PartInfo::parse_header(OpenImageIO_v1_8::OpenEXRInput*, Imf_2_3::Header const*) in libOpenImageIO.a(exrinput.cpp.o)
  "Imf_2_3::Header::begin() const", referenced from:
      OpenImageIO_v1_8::OpenEXRInput::PartInfo::parse_header(OpenImageIO_v1_8::OpenEXRInput*, Imf_2_3::Header const*) in libOpenImageIO.a(exrinput.cpp.o)
  "Imf_2_3::Header::hasName() const", referenced from:
      OpenImageIO_v1_8::OpenEXRInput::PartInfo::parse_header(OpenImageIO_v1_8::OpenEXRInput*, Imf_2_3::Header const*) in libOpenImageIO.a(exrinput.cpp.o)
      OpenImageIO_v1_8::OpenEXROutput::spec_to_header(OpenImageIO_v1_8::ImageSpec&, int, Imf_2_3::Header&) in libOpenImageIO.a(exroutput.cpp.o)
  "Imf_2_3::Header::channels() const", referenced from:
      OpenImageIO_v1_8::OpenEXRInput::PartInfo::query_channels(OpenImageIO_v1_8::OpenEXRInput*, Imf_2_3::Header const*) in libOpenImageIO.a(exrinput.cpp.o)
  "Imf_2_3::IStream::isMemoryMapped() const", referenced from:
      vtable for OpenImageIO_v1_8::OpenEXRInputStream in libOpenImageIO.a(exrinput.cpp.o)
  "Imf_2_3::KeyCode::perfOffset() const", referenced from:
      OpenImageIO_v1_8::OpenEXRInput::PartInfo::parse_header(OpenImageIO_v1_8::OpenEXRInput*, Imf_2_3::Header const*) in libOpenImageIO.a(exrinput.cpp.o)
  "Imf_2_3::KeyCode::filmMfcCode() const", referenced from:
      OpenImageIO_v1_8::OpenEXRInput::PartInfo::parse_header(OpenImageIO_v1_8::OpenEXRInput*, Imf_2_3::Header const*) in libOpenImageIO.a(exrinput.cpp.o)
  "Imf_2_3::KeyCode::perfsPerCount() const", referenced from:
      OpenImageIO_v1_8::OpenEXRInput::PartInfo::parse_header(OpenImageIO_v1_8::OpenEXRInput*, Imf_2_3::Header const*) in libOpenImageIO.a(exrinput.cpp.o)
  "Imf_2_3::KeyCode::perfsPerFrame() const", referenced from:
      OpenImageIO_v1_8::OpenEXRInput::PartInfo::parse_header(OpenImageIO_v1_8::OpenEXRInput*, Imf_2_3::Header const*) in libOpenImageIO.a(exrinput.cpp.o)
  "Imf_2_3::KeyCode::count() const", referenced from:
      OpenImageIO_v1_8::OpenEXRInput::PartInfo::parse_header(OpenImageIO_v1_8::OpenEXRInput*, Imf_2_3::Header const*) in libOpenImageIO.a(exrinput.cpp.o)
  "Imf_2_3::KeyCode::prefix() const", referenced from:
      OpenImageIO_v1_8::OpenEXRInput::PartInfo::parse_header(OpenImageIO_v1_8::OpenEXRInput*, Imf_2_3::Header const*) in libOpenImageIO.a(exrinput.cpp.o)
  "Imf_2_3::KeyCode::filmType() const", referenced from:
      OpenImageIO_v1_8::OpenEXRInput::PartInfo::parse_header(OpenImageIO_v1_8::OpenEXRInput*, Imf_2_3::Header const*) in libOpenImageIO.a(exrinput.cpp.o)
  "Imf_2_3::TimeCode::timeAndFlags(Imf_2_3::TimeCode::Packing) const", referenced from:
      OpenImageIO_v1_8::OpenEXRInput::PartInfo::parse_header(OpenImageIO_v1_8::OpenEXRInput*, Imf_2_3::Header const*) in libOpenImageIO.a(exrinput.cpp.o)
  "Imf_2_3::TimeCode::frame() const", referenced from:
      OpenImageIO_v1_8::ImageSpec::metadata_val(OpenImageIO_v1_8::ParamValue const&, bool) in libOpenImageIO.a(formatspec.cpp.o)
      OpenImageIO_v1_8::spec_to_xml(OpenImageIO_v1_8::ImageSpec const&, OpenImageIO_v1_8::ImageSpec::SerialVerbose) in libOpenImageIO.a(formatspec.cpp.o)
      OpenImageIO_v1_8::DPXInput::get_timecode_string(Imf_2_3::TimeCode&) in libOpenImageIO.a(dpxinput.cpp.o)
  "Imf_2_3::TimeCode::hours() const", referenced from:
      OpenImageIO_v1_8::ImageSpec::metadata_val(OpenImageIO_v1_8::ParamValue const&, bool) in libOpenImageIO.a(formatspec.cpp.o)
      OpenImageIO_v1_8::spec_to_xml(OpenImageIO_v1_8::ImageSpec const&, OpenImageIO_v1_8::ImageSpec::SerialVerbose) in libOpenImageIO.a(formatspec.cpp.o)
      OpenImageIO_v1_8::DPXInput::get_timecode_string(Imf_2_3::TimeCode&) in libOpenImageIO.a(dpxinput.cpp.o)
  "Imf_2_3::TimeCode::minutes() const", referenced from:
      OpenImageIO_v1_8::ImageSpec::metadata_val(OpenImageIO_v1_8::ParamValue const&, bool) in libOpenImageIO.a(formatspec.cpp.o)
      OpenImageIO_v1_8::spec_to_xml(OpenImageIO_v1_8::ImageSpec const&, OpenImageIO_v1_8::ImageSpec::SerialVerbose) in libOpenImageIO.a(formatspec.cpp.o)
      OpenImageIO_v1_8::DPXInput::get_timecode_string(Imf_2_3::TimeCode&) in libOpenImageIO.a(dpxinput.cpp.o)
  "Imf_2_3::TimeCode::seconds() const", referenced from:
      OpenImageIO_v1_8::ImageSpec::metadata_val(OpenImageIO_v1_8::ParamValue const&, bool) in libOpenImageIO.a(formatspec.cpp.o)
      OpenImageIO_v1_8::spec_to_xml(OpenImageIO_v1_8::ImageSpec const&, OpenImageIO_v1_8::ImageSpec::SerialVerbose) in libOpenImageIO.a(formatspec.cpp.o)
      OpenImageIO_v1_8::DPXInput::get_timecode_string(Imf_2_3::TimeCode&) in libOpenImageIO.a(dpxinput.cpp.o)
  "Imf_2_3::TimeCode::userData() const", referenced from:
      OpenImageIO_v1_8::OpenEXRInput::PartInfo::parse_header(OpenImageIO_v1_8::OpenEXRInput*, Imf_2_3::Header const*) in libOpenImageIO.a(exrinput.cpp.o)
  "Imf_2_3::TimeCode::dropFrame() const", referenced from:
      OpenImageIO_v1_8::DPXInput::get_timecode_string(Imf_2_3::TimeCode&) in libOpenImageIO.a(dpxinput.cpp.o)
  "typeinfo for Iex_2_3::BaseExc", referenced from:
      typeinfo for Iex_2_3::MathExc in libOpenImageIO.a(imagebufalgo_xform.cpp.o)
      typeinfo for Iex_2_3::InputExc in libOpenImageIO.a(exrinput.cpp.o)
      typeinfo for Iex_2_3::ErrnoExc in libOpenImageIO.a(exroutput.cpp.o)
      typeinfo for Iex_2_3::TypeExc in libOpenImageIO.a(exroutput.cpp.o)
      typeinfo for Iex_2_3::MathExc in libOpenImageIO.a(texturesys.cpp.o)
  "typeinfo for Imf_2_3::IStream", referenced from:
      typeinfo for OpenImageIO_v1_8::OpenEXRInputStream in libOpenImageIO.a(exrinput.cpp.o)
  "typeinfo for Imf_2_3::OStream", referenced from:
      typeinfo for OpenImageIO_v1_8::OpenEXROutputStream in libOpenImageIO.a(exroutput.cpp.o)
  "typeinfo for Imf_2_3::Attribute", referenced from:
      Imf_2_3::TypedAttribute<Imf_2_3::Envmap> const* Imf_2_3::Header::findTypedAttribute<Imf_2_3::TypedAttribute<Imf_2_3::Envmap> >(char const*) const in libOpenImageIO.a(exrinput.cpp.o)
      Imf_2_3::TypedAttribute<Imf_2_3::Compression> const* Imf_2_3::Header::findTypedAttribute<Imf_2_3::TypedAttribute<Imf_2_3::Compression> >(char const*) const in libOpenImageIO.a(exrinput.cpp.o)
      Imf_2_3::TypedAttribute<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const* Imf_2_3::Header::findTypedAttribute<Imf_2_3::TypedAttribute<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(char const*) const in libOpenImageIO.a(exrinput.cpp.o)
      Imf_2_3::TypedAttribute<int> const* Imf_2_3::Header::findTypedAttribute<Imf_2_3::TypedAttribute<int> >(char const*) const in libOpenImageIO.a(exrinput.cpp.o)
      Imf_2_3::TypedAttribute<float> const* Imf_2_3::Header::findTypedAttribute<Imf_2_3::TypedAttribute<float> >(char const*) const in libOpenImageIO.a(exrinput.cpp.o)
      Imf_2_3::TypedAttribute<Imath_2_3::Matrix33<float> > const* Imf_2_3::Header::findTypedAttribute<Imf_2_3::TypedAttribute<Imath_2_3::Matrix33<float> > >(char const*) const in libOpenImageIO.a(exrinput.cpp.o)
      Imf_2_3::TypedAttribute<Imath_2_3::Matrix44<float> > const* Imf_2_3::Header::findTypedAttribute<Imf_2_3::TypedAttribute<Imath_2_3::Matrix44<float> > >(char const*) const in libOpenImageIO.a(exrinput.cpp.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]: *** [luxcoreconsole] Error 1
make[1]: *** [samples/luxcoreconsole/CMakeFiles/luxcoreconsole.dir/all] Error 2
make: *** [all] Error 2

User avatar
Dade
Developer
Developer
Posts: 3356
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

Re: LuxCoreRender Project wants you!

Post by Dade » Tue Dec 03, 2019 4:21 pm

u3dreal wrote:
Tue Dec 03, 2019 4:02 pm
It seems clang can not link oiio.
u3dreal wrote:
Tue Dec 03, 2019 4:02 pm
here is that stupid error

Code: Select all

[ 94%] Linking CXX executable ../../luxcoreconsole
Undefined symbols for architecture x86_64:
  "OpenSubdiv::v3_4_0::Osd::OmpEvaluator::EvalStencils(float const*, OpenSubdiv::v3_4_0::Osd::BufferDescriptor const&, float*, OpenSubdiv::v3_4_0::Osd::BufferDescriptor const&, int const*, int const*, int const*, float const*, int, int)", referenced from:
      bool OpenSubdiv::v3_4_0::Osd::OmpEvaluator::EvalStencils<OpenSubdiv::v3_4_0::Osd::CpuVertexBuffer, OpenSubdiv::v3_4_0::Osd::CpuVertexBuffer, OpenSubdiv::v3_4_0::Far::StencilTable>(OpenSubdiv::v3_4_0::Osd::CpuVertexBuffer*,
[...]
But the first error, you included, is about OpenSubdiv (OpenSubdiv::v3_4_0::Osd::OmpEvaluator::EvalStencils()), not OpenImageIO :?:

OpenSubdiv is included in LuxCore sources (https://github.com/LuxCoreRender/LuxCor ... bdiv-3.4.0) and it is compiled with LuxCore.

It looks like your linker is missing all libraries. There are a lot of "IF (APPLE)" in all cmake files, it is quite a mess. I would start using a "make VERBOSE=1" to check exactly how the linker is called and with what kind of options and libraries.
Support LuxCoreRender project with salts and bounties

u3dreal
Posts: 17
Joined: Tue Dec 03, 2019 3:23 pm

Re: LuxCoreRender Project wants you!

Post by u3dreal » Tue Dec 03, 2019 4:26 pm

Hi Dade ! thanks for the prompt reply

so let's see

this is the last command

Code: Select all

[ 94%] Linking CXX executable ../../luxcoreconsole
cd /Users/drquader/Documents/GitHub/Lux_build/samples/luxcoreconsole && /Applications/CMake.app/Contents/bin/cmake -E cmake_link_script CMakeFiles/luxcoreconsole.dir/link.txt --verbose=1
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++   -Xpreprocessor -fopenmp -I//Users/drquader/Documents/GitHub/LuxCore/../macos/include -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk -mmacosx-version-min=10.13 -Wl,-search_paths_first -Wl,-headerpad_max_install_names -Wl,-unexported_symbols_list -Wl,"/Users/drquader/Documents/GitHub/LuxCore/cmake/exportmaps/unexported_symbols.map" -L/Users/drquader/Documents/GitHub/macos/lib -liomp5 CMakeFiles/luxcoreconsole.dir/luxcoreconsole.cpp.o  -o ../../luxcoreconsole -F/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks  -L/Users/drquader/Documents/GitHub/macos/lib -Wl,-rpath,@loader_path -Wl,-rpath,/Users/drquader/Documents/GitHub/macos/lib -Wl,-rpath,/Users/drquader/Documents/GitHub/LuxCore/../macos/lib ../../lib/libluxcore.a ../../lib/libslg-core.a ../../lib/libslg-film.a ../../lib/libslg-kernels.a ../../lib/libluxrays.a ../../lib/libbcd.a ../../lib/libopensubdiv.a ../../lib/libopenvdb.a /Users/drquader/Documents/GitHub/LuxCore/../macos/lib/libembree3.dylib /Users/drquader/Documents/GitHub/macos/lib/libOpenImageDenoise.dylib /Users/drquader/Documents/GitHub/macos/lib/libtbb.dylib /Users/drquader/Documents/GitHub/macos/lib/libtbb.dylib /Users/drquader/Documents/GitHub/LuxCore/../macos/lib/libtiff.a /Users/drquader/Documents/GitHub/LuxCore/../macos/lib/liblzma.a /Users/drquader/Documents/GitHub/LuxCore/../macos/lib/libtiff.a /Users/drquader/Documents/GitHub/LuxCore/../macos/lib/liblzma.a /Users/drquader/Documents/GitHub/macos/lib/libIex.a /Users/drquader/Documents/GitHub/macos/lib/libIlmImf.a /Users/drquader/Documents/GitHub/macos/lib/libHalf.a /Users/drquader/Documents/GitHub/macos/lib/libImath.a /Users/drquader/Documents/GitHub/macos/lib/libIlmThread.a /Users/drquader/Documents/GitHub/LuxCore/../macos/lib/libpng.a -lz /Users/drquader/Documents/GitHub/LuxCore/../macos/lib/libjpeg.a /Users/drquader/Documents/GitHub/macos/lib/libboost_thread.a /Users/drquader/Documents/GitHub/macos/lib/libboost_program_options.a /Users/drquader/Documents/GitHub/macos/lib/libboost_filesystem.a /Users/drquader/Documents/GitHub/macos/lib/libboost_serialization.a /Users/drquader/Documents/GitHub/macos/lib/libboost_iostreams.a /Users/drquader/Documents/GitHub/macos/lib/libboost_regex.a /Users/drquader/Documents/GitHub/macos/lib/libboost_system.a /Users/drquader/Documents/GitHub/macos/lib/libboost_python.a /Users/drquader/Documents/GitHub/macos/lib/libboost_chrono.a /Users/drquader/Documents/GitHub/macos/lib/libboost_serialization.a /Users/drquader/Documents/GitHub/macos/lib/libboost_numpy.a /Users/drquader/Documents/GitHub/macos/lib/libboost_date_time.a -framework opencl /Users/drquader/Documents/GitHub/macos/lib/libOpenImageIO.a -framework OpenGL /Users/drquader/Documents/GitHub/macos/lib/libboost_thread.a /Users/drquader/Documents/GitHub/macos/lib/libboost_program_options.a /Users/drquader/Documents/GitHub/macos/lib/libboost_filesystem.a /Users/drquader/Documents/GitHub/macos/lib/libboost_serialization.a /Users/drquader/Documents/GitHub/macos/lib/libboost_iostreams.a /Users/drquader/Documents/GitHub/macos/lib/libboost_regex.a /Users/drquader/Documents/GitHub/macos/lib/libboost_system.a /Users/drquader/Documents/GitHub/macos/lib/libboost_python.a /Users/drquader/Documents/GitHub/macos/lib/libboost_chrono.a /Users/drquader/Documents/GitHub/macos/lib/libboost_serialization.a /Users/drquader/Documents/GitHub/macos/lib/libboost_iostreams.a /Users/drquader/Documents/GitHub/macos/lib/libboost_regex.a /Users/drquader/Documents/GitHub/macos/lib/libboost_system.a /Users/drquader/Documents/GitHub/macos/lib/libboost_python.a /Users/drquader/Documents/GitHub/macos/lib/libboost_chrono.a /Users/drquader/Documents/GitHub/macos/lib/libboost_numpy.a /Users/drquader/Documents/GitHub/macos/lib/libboost_date_time.a -framework opencl 
Undefined symbols for architecture x86_64:
  "OpenSubdiv::v3_4_0::Osd::OmpEvaluator::EvalStencils(float const*, OpenSubdiv::v3_4_0::Osd::BufferDescriptor const&, float*, OpenSubdiv::v3_4_0::Osd::BufferDescriptor const&, int const*, int const*, int const*, float const*, int, int)", referenced from:
-L/Users/drquader/Documents/GitHub/macos/lib is in there so lib should be found

User avatar
Dade
Developer
Developer
Posts: 3356
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

Re: LuxCoreRender Project wants you!

Post by Dade » Tue Dec 03, 2019 4:40 pm

Let's start with the first error: the code is referencing OpenSubdiv OpenMP support. I see a "-fopenmp" on your c++ command line so I assume OpenMP is enabled. I see also a linked "../../lib/libopensubdiv.a" library so OpenSubdiv is linked.

I would run a "nm -C lib/libopensubdiv.a | grep 'OpenSubdiv::v3_4_0::Osd::OmpEvaluator::EvalStencils'" to check if the symbol is defined in your "../../lib/libopensubdiv.a" library.

This is the result on mine:

Code: Select all

david@Desktop-3900x:~/projects/luxcorerender/LuxCore$ nm -C lib/libopensubdiv.a | grep 'OpenSubdiv::v3_4_0::Osd::OmpEvaluator::EvalStencils'
000000000000b500 T OpenSubdiv::v3_4_0::Osd::OmpEvaluator::EvalStencils(float const*, OpenSubdiv::v3_4_0::Osd::BufferDescriptor const&, float*, OpenSubdiv::v3_4_0::Osd::BufferDescriptor const&, int const*, int const*, int const*, float const*, int, int)
000000000000b550 T OpenSubdiv::v3_4_0::Osd::OmpEvaluator::EvalStencils(float const*, OpenSubdiv::v3_4_0::Osd::BufferDescriptor const&, float*, OpenSubdiv::v3_4_0::Osd::BufferDescriptor const&, float*, OpenSubdiv::v3_4_0::Osd::BufferDescriptor const&, float*, OpenSubdiv::v3_4_0::Osd::BufferDescriptor const&, int const*, int const*, int const*, float const*, float const*, float const*, int, int)
000000000000b5d0 T OpenSubdiv::v3_4_0::Osd::OmpEvaluator::EvalStencils(float const*, OpenSubdiv::v3_4_0::Osd::BufferDescriptor const&, float*, OpenSubdiv::v3_4_0::Osd::BufferDescriptor const&, float*, OpenSubdiv::v3_4_0::Osd::BufferDescriptor const&, float*, OpenSubdiv::v3_4_0::Osd::BufferDescriptor const&, float*, OpenSubdiv::v3_4_0::Osd::BufferDescriptor const&, float*, OpenSubdiv::v3_4_0::Osd::BufferDescriptor const&, float*, OpenSubdiv::v3_4_0::Osd::BufferDescriptor const&, int const*, int const*, int const*, float const*, float const*, float const*, float const*, float const*, float const*, int, int)
david@Desktop-3900x:~/projects/luxcorerender/LuxCore$ 
Support LuxCoreRender project with salts and bounties

u3dreal
Posts: 17
Joined: Tue Dec 03, 2019 3:23 pm

Re: Compile on MacOS

Post by u3dreal » Tue Dec 03, 2019 4:58 pm

"nm -C lib/libopensubdiv.a | grep 'OpenSubdiv::v3_4_0::Osd::OmpEvaluator::EvalStencils"

returns nothing
?

opensubdiv not compiled with openmp ?

here is the output of make opensubdiv....

Code: Select all

drquader$ make clean opensubdiv
[  0%] Building CXX object src/slg/CMakeFiles/opensubdiv.dir/__/__/deps/opensubdiv-3.4.0/opensubdiv/version.cpp.o
[  0%] Building CXX object src/slg/CMakeFiles/opensubdiv.dir/__/__/deps/opensubdiv-3.4.0/opensubdiv/far/bilinearPatchBuilder.cpp.o
[ 25%] Building CXX object src/slg/CMakeFiles/opensubdiv.dir/__/__/deps/opensubdiv-3.4.0/opensubdiv/far/catmarkPatchBuilder.cpp.o
[ 25%] Building CXX object src/slg/CMakeFiles/opensubdiv.dir/__/__/deps/opensubdiv-3.4.0/opensubdiv/far/error.cpp.o
[ 25%] Building CXX object src/slg/CMakeFiles/opensubdiv.dir/__/__/deps/opensubdiv-3.4.0/opensubdiv/far/loopPatchBuilder.cpp.o
/Users/drquader/Documents/GitHub/LuxCore/deps/opensubdiv-3.4.0/opensubdiv/far/loopPatchBuilder.cpp:1622:5: warning: 
      unused function '_printSourcePatch' [-Wunused-function]
    _printSourcePatch(SourcePatch const & patch, bool printCornerInfo = true,
    ^
1 warning generated.
[ 25%] Building CXX object src/slg/CMakeFiles/opensubdiv.dir/__/__/deps/opensubdiv-3.4.0/opensubdiv/far/patchBasis.cpp.o
[ 25%] Building CXX object src/slg/CMakeFiles/opensubdiv.dir/__/__/deps/opensubdiv-3.4.0/opensubdiv/far/patchBuilder.cpp.o
[ 25%] Building CXX object src/slg/CMakeFiles/opensubdiv.dir/__/__/deps/opensubdiv-3.4.0/opensubdiv/far/patchDescriptor.cpp.o
[ 25%] Building CXX object src/slg/CMakeFiles/opensubdiv.dir/__/__/deps/opensubdiv-3.4.0/opensubdiv/far/patchMap.cpp.o
[ 25%] Building CXX object src/slg/CMakeFiles/opensubdiv.dir/__/__/deps/opensubdiv-3.4.0/opensubdiv/far/patchTable.cpp.o
[ 50%] Building CXX object src/slg/CMakeFiles/opensubdiv.dir/__/__/deps/opensubdiv-3.4.0/opensubdiv/far/patchTableFactory.cpp.o
[ 50%] Building CXX object src/slg/CMakeFiles/opensubdiv.dir/__/__/deps/opensubdiv-3.4.0/opensubdiv/far/ptexIndices.cpp.o
[ 50%] Building CXX object src/slg/CMakeFiles/opensubdiv.dir/__/__/deps/opensubdiv-3.4.0/opensubdiv/far/stencilTable.cpp.o
[ 50%] Building CXX object src/slg/CMakeFiles/opensubdiv.dir/__/__/deps/opensubdiv-3.4.0/opensubdiv/far/stencilTableFactory.cpp.o
[ 50%] Building CXX object src/slg/CMakeFiles/opensubdiv.dir/__/__/deps/opensubdiv-3.4.0/opensubdiv/far/stencilBuilder.cpp.o
[ 50%] Building CXX object src/slg/CMakeFiles/opensubdiv.dir/__/__/deps/opensubdiv-3.4.0/opensubdiv/far/topologyDescriptor.cpp.o
[ 50%] Building CXX object src/slg/CMakeFiles/opensubdiv.dir/__/__/deps/opensubdiv-3.4.0/opensubdiv/far/topologyRefiner.cpp.o
[ 50%] Building CXX object src/slg/CMakeFiles/opensubdiv.dir/__/__/deps/opensubdiv-3.4.0/opensubdiv/far/topologyRefinerFactory.cpp.o
[ 75%] Building CXX object src/slg/CMakeFiles/opensubdiv.dir/__/__/deps/opensubdiv-3.4.0/opensubdiv/osd/cpuEvaluator.cpp.o
[ 75%] Building CXX object src/slg/CMakeFiles/opensubdiv.dir/__/__/deps/opensubdiv-3.4.0/opensubdiv/osd/cpuKernel.cpp.o
[ 75%] Building CXX object src/slg/CMakeFiles/opensubdiv.dir/__/__/deps/opensubdiv-3.4.0/opensubdiv/osd/cpuPatchTable.cpp.o
[ 75%] Building CXX object src/slg/CMakeFiles/opensubdiv.dir/__/__/deps/opensubdiv-3.4.0/opensubdiv/osd/cpuVertexBuffer.cpp.o
[ 75%] Building CXX object src/slg/CMakeFiles/opensubdiv.dir/__/__/deps/opensubdiv-3.4.0/opensubdiv/sdc/crease.cpp.o
[ 75%] Building CXX object src/slg/CMakeFiles/opensubdiv.dir/__/__/deps/opensubdiv-3.4.0/opensubdiv/sdc/typeTraits.cpp.o
[ 75%] Building CXX object src/slg/CMakeFiles/opensubdiv.dir/__/__/deps/opensubdiv-3.4.0/opensubdiv/vtr/fvarLevel.cpp.o
[ 75%] Building CXX object src/slg/CMakeFiles/opensubdiv.dir/__/__/deps/opensubdiv-3.4.0/opensubdiv/vtr/fvarRefinement.cpp.o
[100%] Building CXX object src/slg/CMakeFiles/opensubdiv.dir/__/__/deps/opensubdiv-3.4.0/opensubdiv/vtr/level.cpp.o
[100%] Building CXX object src/slg/CMakeFiles/opensubdiv.dir/__/__/deps/opensubdiv-3.4.0/opensubdiv/vtr/quadRefinement.cpp.o
[100%] Building CXX object src/slg/CMakeFiles/opensubdiv.dir/__/__/deps/opensubdiv-3.4.0/opensubdiv/vtr/refinement.cpp.o
[100%] Building CXX object src/slg/CMakeFiles/opensubdiv.dir/__/__/deps/opensubdiv-3.4.0/opensubdiv/vtr/sparseSelector.cpp.o
[100%] Building CXX object src/slg/CMakeFiles/opensubdiv.dir/__/__/deps/opensubdiv-3.4.0/opensubdiv/vtr/triRefinement.cpp.o
[100%] Linking CXX static library ../../lib/libopensubdiv.a
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../lib/libopensubdiv.a(version.cpp.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../lib/libopensubdiv.a(version.cpp.o) has no symbols
[100%] Built target opensubdiv
omp.Evaluator.o is not build

where can i find compile options for opensubdiv .... maybe i'll just try without omp for the moment. is there a flag ? Or is openmp needed ?

User avatar
Dade
Developer
Developer
Posts: 3356
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

Re: Compile on MacOS

Post by Dade » Tue Dec 03, 2019 6:48 pm

u3dreal wrote:
Tue Dec 03, 2019 4:58 pm
where can i find compile options for opensubdiv .... maybe i'll just try without omp for the moment. is there a flag ? Or is openmp needed ?
Here: https://github.com/LuxCoreRender/LuxCor ... s.txt#L186

As you see, the relevant files are compiled if OpenMP support has been found.
Support LuxCoreRender project with salts and bounties

u3dreal
Posts: 17
Joined: Tue Dec 03, 2019 3:23 pm

Re: Compile on MacOS

Post by u3dreal » Tue Dec 03, 2019 7:00 pm

Yes i also thought now that something is wrong with lux cmake finding omp but

after adding MESSAGE(STATUS "OpenMP found !!!!")

right here in the the Config_OSX.cmake it seems to be found correctly cmakegui also reports to have libiomp5.dylib found ..

Code: Select all

find_library(OPENMP_LIB libiomp5.dylib HINTS ${OSX_SEARCH_PATH}/lib)

if(NOT OPENMP_LIB)
    message(FATAL_ERROR "OpenMP library not found")
else()
    set(OpenMP_CXX_FLAGS "-Xpreprocessor -fopenmp -I/${OSX_SEARCH_PATH}/include")
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
    set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L${OPENMP_LIB} -liomp5")
    set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L${OPENMP_LIB} -liomp5")
    INSTALL(FILES ${OSX_SEARCH_PATH}/lib/libomp.dylib DESTINATION lib)
    INSTALL(FILES ${OSX_SEARCH_PATH}/lib/libiomp5.dylib DESTINATION lib)
    MESSAGE(STATUS "OpenMP found !!!!")
endif()
Are there any global lux options that will have to be set for lux to use OpenMP ... maybe that's missing ?

u3dreal
Posts: 17
Joined: Tue Dec 03, 2019 3:23 pm

Re: Compile on MacOS

Post by u3dreal » Tue Dec 03, 2019 7:29 pm

After setting OPENMP_FOUND = 1 opensubdiv compiles with omp...

Code: Select all

find_library(OPENMP_LIB libiomp5.dylib HINTS ${OSX_SEARCH_PATH}/lib)

if(NOT OPENMP_LIB)
    message(FATAL_ERROR "OpenMP library not found")
else()
    set(OpenMP_CXX_FLAGS "-Xpreprocessor -fopenmp -I/${OSX_SEARCH_PATH}/include")
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
    set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L${OPENMP_LIB} -liomp5")
    set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L${OPENMP_LIB} -liomp5")
    INSTALL(FILES ${OSX_SEARCH_PATH}/lib/libomp.dylib DESTINATION lib)
    INSTALL(FILES ${OSX_SEARCH_PATH}/lib/libiomp5.dylib DESTINATION lib)
    MESSAGE(STATUS "OpenMP found !!!!")
    SET(OPENMP_FOUND 1)
endif()
But now oiio throws an error

Code: Select all

[ 94%] Linking CXX executable ../../luxcoreconsole
Undefined symbols for architecture x86_64:
  "_FT_Done_Face", referenced from:
      OpenImageIO_v1_8::ImageBufAlgo::text_size(OpenImageIO_v1_8::string_view, int, OpenImageIO_v1_8::string_view) in libOpenImageIO.a(imagebufalgo_draw.cpp.o)
      OpenImageIO_v1_8::ImageBufAlgo::render_text(OpenImageIO_v1_8::ImageBuf&, int, int, OpenImageIO_v1_8::string_view, int, OpenImageIO_v1_8::string_view, OpenImageIO_v1_8::array_view<float const>, OpenImageIO_v1_8::ImageBufAlgo::TextAlignX, OpenImageIO_v1_8::ImageBufAlgo::TextAlignY, int, OpenImageIO_v1_8::ROI, int) in libOpenImageIO.a(imagebufalgo_draw.cpp.o)
But now nm gives me
"nm -C lib/libOpenImageIO.a | grep 'OpenImageIO_v1_8::ImageBufAlgo::text_size(OpenImageIO_v1_8::string_view'
000000000000baa0 T OpenImageIO_v1_8::ImageBufAlgo::text_size(OpenImageIO_v1_8::string_view, int, OpenImageIO_v1_8::string_view)"


Here is last verbose output before error:

Code: Select all

[ 94%] Linking CXX executable ../../luxcoreconsole
cd /Users/drquader/Documents/GitHub/Lux_build/samples/luxcoreconsole && /Applications/CMake.app/Contents/bin/cmake -E cmake_link_script CMakeFiles/luxcoreconsole.dir/link.txt --verbose=1
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++   -Xpreprocessor -fopenmp -I//Users/drquader/Documents/GitHub/LuxCore/../macos/include -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk -mmacosx-version-min=10.13 -Wl,-search_paths_first -Wl,-headerpad_max_install_names -Wl,-unexported_symbols_list -Wl,"/Users/drquader/Documents/GitHub/LuxCore/cmake/exportmaps/unexported_symbols.map" -L/Users/drquader/Documents/GitHub/LuxCore/../macos/lib -liomp5 CMakeFiles/luxcoreconsole.dir/luxcoreconsole.cpp.o  -o ../../luxcoreconsole -F/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks   -L/Users/drquader/Documents/GitHub/macos/lib  -Wl,-rpath,@loader_path -Wl,-rpath,/Users/drquader/Documents/GitHub/macos/lib -Wl,-rpath,/Users/drquader/Documents/GitHub/LuxCore/../macos/lib ../../lib/libluxcore.a ../../lib/libslg-core.a ../../lib/libslg-film.a ../../lib/libslg-kernels.a ../../lib/libluxrays.a ../../lib/libbcd.a ../../lib/libopensubdiv.a ../../lib/libopenvdb.a /Users/drquader/Documents/GitHub/LuxCore/../macos/lib/libembree3.dylib /Users/drquader/Documents/GitHub/macos/lib/libOpenImageDenoise.dylib /Users/drquader/Documents/GitHub/macos/lib/libtbb.dylib /Users/drquader/Documents/GitHub/macos/lib/libtbb.dylib /Users/drquader/Documents/GitHub/LuxCore/../macos/lib/libtiff.a /Users/drquader/Documents/GitHub/LuxCore/../macos/lib/liblzma.a /Users/drquader/Documents/GitHub/LuxCore/../macos/lib/libtiff.a /Users/drquader/Documents/GitHub/LuxCore/../macos/lib/liblzma.a /Users/drquader/Documents/GitHub/macos/lib/libIex.a /Users/drquader/Documents/GitHub/macos/lib/libIlmImf.a /Users/drquader/Documents/GitHub/macos/lib/libHalf.a /Users/drquader/Documents/GitHub/macos/lib/libImath.a /Users/drquader/Documents/GitHub/macos/lib/libIlmThread.a /Users/drquader/Documents/GitHub/LuxCore/../macos/lib/libpng.a -lz /Users/drquader/Documents/GitHub/LuxCore/../macos/lib/libjpeg.a /Users/drquader/Documents/GitHub/macos/lib/libboost_thread.a /Users/drquader/Documents/GitHub/macos/lib/libboost_program_options.a /Users/drquader/Documents/GitHub/macos/lib/libboost_filesystem.a /Users/drquader/Documents/GitHub/macos/lib/libboost_serialization.a /Users/drquader/Documents/GitHub/macos/lib/libboost_iostreams.a /Users/drquader/Documents/GitHub/macos/lib/libboost_regex.a /Users/drquader/Documents/GitHub/macos/lib/libboost_system.a /Users/drquader/Documents/GitHub/macos/lib/libboost_python.a /Users/drquader/Documents/GitHub/macos/lib/libboost_chrono.a /Users/drquader/Documents/GitHub/macos/lib/libboost_serialization.a /Users/drquader/Documents/GitHub/macos/lib/libboost_numpy.a /Users/drquader/Documents/GitHub/macos/lib/libboost_date_time.a -framework opencl /Users/drquader/Documents/GitHub/macos/lib/libOpenImageIO.a -framework OpenGL /Users/drquader/Documents/GitHub/macos/lib/libboost_thread.a /Users/drquader/Documents/GitHub/macos/lib/libboost_program_options.a /Users/drquader/Documents/GitHub/macos/lib/libboost_filesystem.a /Users/drquader/Documents/GitHub/macos/lib/libboost_serialization.a /Users/drquader/Documents/GitHub/macos/lib/libboost_iostreams.a /Users/drquader/Documents/GitHub/macos/lib/libboost_regex.a /Users/drquader/Documents/GitHub/macos/lib/libboost_system.a /Users/drquader/Documents/GitHub/macos/lib/libboost_python.a /Users/drquader/Documents/GitHub/macos/lib/libboost_chrono.a /Users/drquader/Documents/GitHub/macos/lib/libboost_serialization.a /Users/drquader/Documents/GitHub/macos/lib/libboost_iostreams.a /Users/drquader/Documents/GitHub/macos/lib/libboost_regex.a /Users/drquader/Documents/GitHub/macos/lib/libboost_system.a /Users/drquader/Documents/GitHub/macos/lib/libboost_python.a /Users/drquader/Documents/GitHub/macos/lib/libboost_chrono.a /Users/drquader/Documents/GitHub/macos/lib/libboost_numpy.a /Users/drquader/Documents/GitHub/macos/lib/libboost_date_time.a -framework opencl 

User avatar
Dade
Developer
Developer
Posts: 3356
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

Re: Compile on MacOS

Post by Dade » Tue Dec 03, 2019 10:18 pm

"_FT_Done_Face" should be the undefined symbol. It should be a FreeType symbol (OpenImageIO not compiled with freetype ?)
Support LuxCoreRender project with salts and bounties

u3dreal
Posts: 17
Joined: Tue Dec 03, 2019 3:23 pm

Re: Compile on MacOS

Post by u3dreal » Tue Dec 03, 2019 10:51 pm

I'll compile it manually to see whats is missing ... freetype is installed via brew

Post Reply