AcademySoftwareFoundation / OpenTimelineIO

Open Source API and interchange format for editorial timeline information.
http://opentimeline.io
Apache License 2.0
1.47k stars 294 forks source link

Link fail with opentimelineio.so #1553

Closed Pro-pra closed 1 year ago

Pro-pra commented 1 year ago

Hi all, I build olive editor, and have link errors:

DEBUG: /usr/bin/x86_64-rosa-linux-gnu-ld: app/CMakeFiles/libolive-editor.dir/task/project/saveotio/saveotio.cpp.o: in function `olive::SaveOTIOTask::SerializeTrack(olive::Track*, double, olive::core::rational)':
DEBUG: /builddir/build/BUILD/olive-d09e257523b725ad5369030541869a3929a4e3c1/app/task/project/saveotio/saveotio.cpp:121: undefined reference to `opentimelineio::v1_0::Track::Track(std::string const&, std::optional<opentime::v1_0::TimeRange> const&, std::string const&, opentimelineio::v1_0::AnyDictionary const&)'
DEBUG: /usr/bin/x86_64-rosa-linux-gnu-ld: /builddir/build/BUILD/olive-d09e257523b725ad5369030541869a3929a4e3c1/app/task/project/saveotio/saveotio.cpp:141: undefined reference to `opentimelineio::v1_0::Clip::Clip(std::string const&, opentimelineio::v1_0::MediaReference*, std::optional<opentime::v1_0::TimeRange> const&, opentimelineio::v1_0::AnyDictionary const&, std::string const&)'
DEBUG: /usr/bin/x86_64-rosa-linux-gnu-ld: /builddir/build/BUILD/olive-d09e257523b725ad5369030541869a3929a4e3c1/app/task/project/saveotio/saveotio.cpp:162: undefined reference to `opentimelineio::v1_0::ExternalReference::ExternalReference(std::string const&, std::optional<opentime::v1_0::TimeRange> const&, opentimelineio::v1_0::AnyDictionary const&, std::optional<Imath_3_1::Box<Imath_3_1::Vec2<double> > > const&)'
DEBUG: /usr/bin/x86_64-rosa-linux-gnu-ld: app/CMakeFiles/libolive-editor.dir/task/project/saveotio/saveotio.cpp.o: in function `olive::SaveOTIOTask::SerializeTimeline(olive::Sequence*)':
DEBUG: /builddir/build/BUILD/olive-d09e257523b725ad5369030541869a3929a4e3c1/app/task/project/saveotio/saveotio.cpp:99: undefined reference to `opentimelineio::v1_0::Timeline::Timeline(std::string const&, std::optional<opentime::v1_0::RationalTime>, opentimelineio::v1_0::AnyDictionary const&)'
DEBUG: collect2: error: ld returned 1 exit status

May be bug?

meshula commented 1 year ago

This is a guess, but you may be running into an issue due to c++17 being active for the olive build and thus running into a conflict between std::optional and non_std::optional. We have a cxx17 branch with a fix. If that branch resolves the issue for you please let us know here.

Pro-pra commented 1 year ago

Thank you, cxx17 branch help me.

reinecke commented 1 year ago

Closing, please re-open if this problem comes back.