I am having trouble getting the OWT framework to work in my iOS project. First problem I encountered (which took me quite a while to solve) was that I had to swap out 'Woogeen' with 'OWT' in the frameworks module map.
Now Xcode throws errors of this kind at me (see complete list below)
Undefined symbols for architecture arm64:
"std::__1::basic_ostream<char, std::__1::char_traits<char> >::operator<<(int)", referenced from:
rtc::webrtc_logging_impl::ToStringVal rtc::webrtc_logging_impl::MakeVal<webrtc::FieldTrialConstrained<int>, webrtc::FieldTrialConstrained<int>, (void*)0>(webrtc::FieldTrialConstrained<int> const&) in OWT(decision_logic.o)
"std::__1::basic_ostream<char, std::__1::char_traits<char> >::operator<<(bool)", referenced from:
rtc::webrtc_logging_impl::ToStringVal rtc::webrtc_logging_impl::MakeVal<webrtc::FieldTrialParameter<bool>, webrtc::FieldTrialParameter<bool>, (void*)0>(webrtc::FieldTrialParameter<bool> const&) in OWT(decision_logic.o)
Show complete list of error messages
```
Undefined symbols for architecture arm64:
"std::__1::basic_ostream >::operator<<(int)", referenced from:
rtc::webrtc_logging_impl::ToStringVal rtc::webrtc_logging_impl::MakeVal, webrtc::FieldTrialConstrained, (void*)0>(webrtc::FieldTrialConstrained const&) in OWT(decision_logic.o)
"std::__1::basic_ostream >::operator<<(bool)", referenced from:
rtc::webrtc_logging_impl::ToStringVal rtc::webrtc_logging_impl::MakeVal, webrtc::FieldTrialParameter, (void*)0>(webrtc::FieldTrialParameter const&) in OWT(decision_logic.o)
"std::__1::to_string(long long)", referenced from:
webrtc::VideoStreamEncoder::ParseEncoderSwitchFieldTrial() const in OWT(video_stream_encoder.o)
"std::__1::basic_string, std::__1::allocator >::copy(char*, unsigned long, unsigned long) const", referenced from:
webrtc::RTCPReceiver::CNAME(unsigned int, char*) const in OWT(rtcp_receiver.o)
"std::__1::basic_string, std::__1::allocator >::insert(unsigned long, unsigned long, char)", referenced from:
google::protobuf::operator<<(std::__1::basic_ostream >&, google::protobuf::uint128 const&) in OWT(int128.o)
"std::__1::basic_string, std::__1::allocator >::assign(char const*, unsigned long)", referenced from:
webrtc::audioproc::ReverseStream::add_channel(void const*, unsigned long) in OWT(aec_dump_impl.o)
google::protobuf::StringPiece::CopyToString(std::__1::basic_string, std::__1::allocator >*) const in OWT(stringpiece.o)
google::protobuf::UnescapeCEscapeString(std::__1::basic_string, std::__1::allocator > const&, std::__1::basic_string, std::__1::allocator >*, std::__1::vector, std::__1::allocator >, std::__1::allocator, std::__1::allocator > > >*) in OWT(strutil.o)
webrtc::BaseRtpStringExtension::Parse(rtc::ArrayView, std::__1::basic_string, std::__1::allocator >*) in OWT(rtp_header_extensions.o)
webrtc::audioproc::Stream::add_input_channel(void const*, unsigned long) in OWT(capture_stream_info.o)
webrtc::audioproc::Stream::add_output_channel(void const*, unsigned long) in OWT(capture_stream_info.o)
webrtc::rtcp::Bye::Parse(webrtc::rtcp::CommonHeader const&) in OWT(bye.o)
...
"void std::__1::__sort&, int*>(int*, int*, std::__1::__less&)", referenced from:
void std::__1::sort >(int*, int*, std::__1::__less) in OWT(webrtc_voice_engine.o)
"std::nothrow", referenced from:
std::__1::pair std::__1::get_temporary_buffer(long) in OWT(webrtc_video_engine.o)
std::__1::pair std::__1::get_temporary_buffer(long) in OWT(basic_ice_controller.o)
std::__1::pair std::__1::get_temporary_buffer(long) in OWT(simulcast_rate_allocator.o)
"operator new(unsigned long, std::nothrow_t const&)", referenced from:
std::__1::pair std::__1::get_temporary_buffer(long) in OWT(webrtc_video_engine.o)
std::__1::pair std::__1::get_temporary_buffer(long) in OWT(basic_ice_controller.o)
std::__1::pair std::__1::get_temporary_buffer(long) in OWT(simulcast_rate_allocator.o)
"std::__1::basic_string, std::__1::allocator >::insert(unsigned long, char const*, unsigned long)", referenced from:
std::__1::basic_string, std::__1::allocator >::insert(unsigned long, std::__1::basic_string, std::__1::allocator > const&) in OWT(stun.o)
"std::__1::basic_string, std::__1::allocator >::rfind(char, unsigned long) const", referenced from:
rtc::SocketAddress::FromString(std::__1::basic_string, std::__1::allocator > const&) in OWT(socket_address.o)
webrtc::ParseHostnameAndPortFromString(std::__1::basic_string, std::__1::allocator > const&, std::__1::basic_string, std::__1::allocator >*, int*) in OWT(ice_server_parsing.o)
"std::__1::__vector_base_common::__throw_out_of_range() const", referenced from:
std::__1::vector >::at(unsigned long) in OWT(jsep_session_description.o)
std::__1::vector >::at(unsigned long) const in OWT(network.o)
std::__1::vector >::at(unsigned long) in OWT(media_session.o)
std::__1::vector, std::__1::allocator > >::at(unsigned long) in OWT(sdp_offer_answer.o)
"std::exception::~exception()", referenced from:
absl::bad_optional_access::~bad_optional_access() in OWT(bad_optional_access.o)
absl::bad_variant_access::~bad_variant_access() in OWT(bad_variant_access.o)
"std::__1::basic_string, std::__1::allocator >::__grow_by(unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long)", referenced from:
std::__1::enable_if<(__is_cpp17_forward_iterator >::value) && (__libcpp_string_gets_noexcept_iterator >::value), std::__1::basic_string, std::__1::allocator >&>::type std::__1::basic_string, std::__1::allocator >::assign >(std::__1::__wrap_iter, std::__1::__wrap_iter) in OWT(json_reader.o)
std::__1::enable_if<(__is_cpp17_forward_iterator::value) && (__libcpp_string_gets_noexcept_iterator::value), std::__1::basic_string, std::__1::allocator >&>::type std::__1::basic_string, std::__1::allocator >::assign(char const*, char const*) in OWT(http_common.o)
std::__1::basic_string, std::__1::allocator >& std::__1::basic_string, std::__1::allocator >::__append_forward_unsafe >(std::__1::__wrap_iter, std::__1::__wrap_iter) in OWT(strutil.o)
std::__1::basic_string, std::__1::allocator >& std::__1::basic_string, std::__1::allocator >::__append_forward_unsafe(char const*, char const*) in OWT(strtod.o)
"std::__1::basic_ostream >::~basic_ostream()", referenced from:
std::__1::basic_ostringstream, std::__1::allocator >::~basic_ostringstream() in OWT(json_value.o)
std::__1::basic_ostringstream, std::__1::allocator >::~basic_ostringstream() in OWT(json_reader.o)
std::__1::basic_ostringstream, std::__1::allocator >::~basic_ostringstream() in OWT(json_writer.o)
std::__1::basic_ostringstream, std::__1::allocator >::~basic_ostringstream() in OWT(common.o)
std::__1::basic_ostringstream, std::__1::allocator >::~basic_ostringstream() in OWT(int128.o)
std::__1::basic_ostringstream, std::__1::allocator >::~basic_ostringstream() in OWT(decision_logic.o)
"std::__1::basic_ostream >::flush()", referenced from:
std::__1::basic_ostream >& std::__1::endl >(std::__1::basic_ostream >&) in OWT(json_value.o)
"std::__1::basic_string, std::__1::allocator >::find(char, unsigned long) const", referenced from:
rtc::tokenize(std::__1::basic_string, std::__1::allocator > const&, char, char, char, std::__1::vector, std::__1::allocator >, std::__1::allocator, std::__1::allocator > > >*) in OWT(string_encode.o)
rtc::tokenize_first(std::__1::basic_string, std::__1::allocator > const&, char, std::__1::basic_string, std::__1::allocator >*, std::__1::basic_string, std::__1::allocator >*) in OWT(string_encode.o)
webrtc::field_trial::FindFullName(std::__1::basic_string, std::__1::allocator > const&) in OWT(field_trial.o)
rtc::SocketAddress::FromString(std::__1::basic_string, std::__1::allocator > const&) in OWT(socket_address.o)
rtc::Network::ToString() const in OWT(network.o)
Json::(anonymous namespace)::valueToString(double, bool, unsigned int, Json::PrecisionType) in OWT(json_writer.o)
webrtc::ParseConnectionData(std::__1::basic_string, std::__1::allocator > const&, rtc::SocketAddress*, webrtc::SdpParseError*) in OWT(webrtc_sdp.o)
...
"operator delete[](void*)", referenced from:
std::__1::default_delete::_EnableIfConvertible::type std::__1::default_delete::operator()(unsigned char*) const in OWT(helpers.o)
std::__1::default_delete::_EnableIfConvertible::type std::__1::default_delete::operator()(unsigned char*) const in OWT(h264_common.o)
std::__1::default_delete::_EnableIfConvertible::type std::__1::default_delete::operator()(char*) const in OWT(port.o)
rtc::BufferedReadAdapter::~BufferedReadAdapter() in OWT(socket_adapters.o)
rtc::AsyncSocksProxySocket::SendAuth() in OWT(socket_adapters.o)
std::__1::default_delete::_EnableIfConvertible::type std::__1::default_delete::operator()(char*) const in OWT(socket_adapters.o)
std::__1::default_delete::_EnableIfConvertible::type std::__1::default_delete::operator()(unsigned char*) const in OWT(async_tcp_socket.o)
...
"std::__1::basic_string, std::__1::allocator >::at(unsigned long)", referenced from:
rtc::CreateRandomData(unsigned long, std::__1::basic_string, std::__1::allocator >*) in OWT(helpers.o)
google::protobuf::StripWhitespace(std::__1::basic_string, std::__1::allocator >*) in OWT(strutil.o)
"operator new[](unsigned long)", referenced from:
rtc::CreateRandomString(unsigned long, char const*, int, std::__1::basic_string, std::__1::allocator >*) in OWT(helpers.o)
rtc::CreateRandomUuid() in OWT(helpers.o)
rtc::BufferT::EnsureCapacityWithHeadroom(unsigned long, bool) in OWT(h264_common.o)
rtc::BufferedReadAdapter::BufferedReadAdapter(rtc::AsyncSocket*, unsigned long) in OWT(socket_adapters.o)
rtc::AsyncSocksProxySocket::SendAuth() in OWT(socket_adapters.o)
rtc::BufferT::EnsureCapacityWithHeadroom(unsigned long, bool) in OWT(socket_adapters.o)
rtc::BufferT::EnsureCapacityWithHeadroom(unsigned long, bool) in OWT(socket_adapters.o)
...
"std::__1::basic_streambuf >::imbue(std::__1::locale const&)", referenced from:
vtable for std::__1::basic_stringbuf, std::__1::allocator > in OWT(sdputils.o)
vtable for std::__1::basic_stringbuf, std::__1::allocator > in OWT(json_value.o)
vtable for std::__1::basic_stringbuf, std::__1::allocator > in OWT(json_reader.o)
vtable for std::__1::basic_stringbuf, std::__1::allocator > in OWT(json_writer.o)
vtable for std::__1::basic_stringbuf, std::__1::allocator > in OWT(common.o)
vtable for std::__1::basic_stringbuf, std::__1::allocator > in OWT(int128.o)
vtable for std::__1::basic_stringbuf, std::__1::allocator > in OWT(decision_logic.o)
...
"std::__1::basic_streambuf >::setbuf(char*, long)", referenced from:
vtable for std::__1::basic_stringbuf, std::__1::allocator > in OWT(sdputils.o)
vtable for std::__1::basic_stringbuf, std::__1::allocator > in OWT(json_value.o)
vtable for std::__1::basic_stringbuf, std::__1::allocator > in OWT(json_reader.o)
vtable for std::__1::basic_stringbuf, std::__1::allocator > in OWT(json_writer.o)
vtable for std::__1::basic_stringbuf, std::__1::allocator > in OWT(common.o)
vtable for std::__1::basic_stringbuf, std::__1::allocator > in OWT(int128.o)
vtable for std::__1::basic_stringbuf, std::__1::allocator > in OWT(decision_logic.o)
...
"std::__1::basic_streambuf >::sync()", referenced from:
vtable for std::__1::basic_stringbuf, std::__1::allocator > in OWT(sdputils.o)
vtable for std::__1::basic_stringbuf, std::__1::allocator > in OWT(json_value.o)
vtable for std::__1::basic_stringbuf, std::__1::allocator > in OWT(json_reader.o)
vtable for std::__1::basic_stringbuf, std::__1::allocator > in OWT(json_writer.o)
vtable for std::__1::basic_stringbuf, std::__1::allocator > in OWT(common.o)
vtable for std::__1::basic_stringbuf, std::__1::allocator > in OWT(int128.o)
vtable for std::__1::basic_stringbuf, std::__1::allocator > in OWT(decision_logic.o)
...
"std::__1::basic_streambuf >::xsgetn(char*, long)", referenced from:
vtable for std::__1::basic_stringbuf, std::__1::allocator > in OWT(sdputils.o)
vtable for std::__1::basic_stringbuf, std::__1::allocator > in OWT(json_value.o)
vtable for std::__1::basic_stringbuf, std::__1::allocator > in OWT(json_reader.o)
vtable for std::__1::basic_stringbuf, std::__1::allocator > in OWT(json_writer.o)
vtable for std::__1::basic_stringbuf, std::__1::allocator > in OWT(common.o)
vtable for std::__1::basic_stringbuf, std::__1::allocator > in OWT(int128.o)
vtable for std::__1::basic_stringbuf, std::__1::allocator > in OWT(decision_logic.o)
...
"std::__1::basic_streambuf >::xsputn(char const*, long)", referenced from:
vtable for std::__1::basic_stringbuf, std::__1::allocator > in OWT(sdputils.o)
vtable for std::__1::basic_stringbuf, std::__1::allocator > in OWT(json_value.o)
vtable for std::__1::basic_stringbuf, std::__1::allocator > in OWT(json_reader.o)
vtable for std::__1::basic_stringbuf, std::__1::allocator > in OWT(json_writer.o)
vtable for std::__1::basic_stringbuf, std::__1::allocator > in OWT(common.o)
vtable for std::__1::basic_stringbuf, std::__1::allocator > in OWT(int128.o)
vtable for std::__1::basic_stringbuf, std::__1::allocator > in OWT(decision_logic.o)
...
"std::__1::basic_ostream >::~basic_ostream()", referenced from:
construction vtable for std::__1::basic_ostream >-in-std::__1::basic_stringstream, std::__1::allocator > in OWT(sdputils.o)
construction vtable for std::__1::basic_ostream >-in-std::__1::basic_ostringstream, std::__1::allocator > in OWT(json_value.o)
construction vtable for std::__1::basic_ostream >-in-std::__1::basic_ostringstream, std::__1::allocator > in OWT(json_reader.o)
construction vtable for std::__1::basic_ostream >-in-std::__1::basic_ostringstream, std::__1::allocator > in OWT(json_writer.o)
construction vtable for std::__1::basic_ostream >-in-std::__1::basic_ostringstream, std::__1::allocator
I am having trouble getting the OWT framework to work in my iOS project. First problem I encountered (which took me quite a while to solve) was that I had to swap out 'Woogeen' with 'OWT' in the frameworks module map.
Now Xcode throws errors of this kind at me (see complete list below)
Show complete list of error messages
``` Undefined symbols for architecture arm64: "std::__1::basic_ostream