OpenTok(iOS)v2.4.0(64位)--架构armv7的未定义符号

4

我试图升级到最新版本的OpenTok iOS SDK。然而,我一直收到像下面这样的大量链接错误。看起来这个最新版本不支持armv7。

Undefined symbols for architecture armv7:
"std::__1::basic_ostream<char, std::__1::char_traits<char> >::operator<<(short)", referenced from:
webrtc::NetEqImpl::DecodeLoop(std::__1::list<webrtc::Packet*, std::__1::allocator<webrtc::Packet*> >*, webrtc::Operations*, webrtc::AudioDecoder*, int*, webrtc::AudioDecoder::SpeechType*) in OpenTok(neteq.neteq_impl.o)
std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >* rtc::MakeCheckOpString<int, short>(int const&, short const&, char const*) in OpenTok(neteq.audio_decoder_impl.o)
"void std::__1::__sort<std::__1::__less<unsigned char, unsigned char>&, unsigned char*>(unsigned char*, unsigned char*, std::__1::__less<unsigned char, unsigned char>&)", referenced from:
webrtc::Sort(void*, unsigned int, webrtc::Type) in OpenTok(system_wrappers.sort.o)
void boost::detail::spread_sort_rec<unsigned char*, int, unsigned char>(unsigned char*, unsigned char*, std::__1::vector<unsigned char*, std::__1::allocator<unsigned char*> >&, unsigned int, std::__1::vector<unsigned long, std::__1::allocator<unsigned long> >&) in OpenTok(system_wrappers.sort.o)
"void std::__1::__sort<std::__1::__less<unsigned short, unsigned short>&, unsigned short*>(unsigned short*, unsigned short*, std::__1::__less<unsigned short, unsigned short>&)", referenced from:
webrtc::Sort(void*, unsigned int, webrtc::Type) in OpenTok(system_wrappers.sort.o)
void boost::detail::spread_sort_rec<unsigned short*, int, unsigned short>(unsigned short*, unsigned short*, std::__1::vector<unsigned short*, std::__1::allocator<unsigned short*> >&, unsigned int, std::__1::vector<unsigned long, std::__1::allocator<unsigned long> >&) in OpenTok(system_wrappers.sort.o)
"std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::append(unsigned long, char)", referenced from:
rtc::HttpParseAttributes(char const*, unsigned long, std::__1::vector<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >&) in OpenTok(rtc_base.httpcommon.o)
"std::__1::basic_ostream<char, std::__1::char_traits<char> >::operator<<(unsigned long long)", referenced from:
webrtc::WebRtcSession::WebRtcSession(cricket::ChannelManager*, rtc::Thread*, rtc::Thread*, cricket::PortAllocator*, webrtc::MediaStreamSignaling*) in OpenTok(libjingle_peerconnection.webrtcsession.o)
cricket::Connection::ToString() const in OpenTok(rtc_p2p.port.o)
webrtc::WebRtcSessionDescriptionFactory::InternalCreateOffer(webrtc::CreateSessionDescriptionRequest) in OpenTok(libjingle_peerconnection.webrtcsessiondescriptionfactory.o)
webrtc::WebRtcSessionDescriptionFactory::InternalCreateAnswer(webrtc::CreateSessionDescriptionRequest) in OpenTok(libjingle_peerconnection.webrtcsessiondescriptionfactory.o)

然而,lipo命令确认该框架支持armv7和arm64两种架构:
$> lipo -info OpenTok.framework/OpenTok
Architectures in the fat file: OpenTok.framework/OpenTok are: armv7 armv7s i386 x86_64 arm64

我已经到了无计可施的地步,非常感谢任何帮助。

谢谢!

1个回答

4
好的,我得到了OpenTok支持团队的及时响应,问题已经解决!我也在他们的支持论坛上发布了同样的问题。(https://forums.tokbox.com/post55977)以下是适用于我的解决方案(与上述链接全文相同)。
What are your Build settings? armv7 is supported.

also make sure that you have added the new lib/frameworks as follows:

- Add VideoToolbox.framework.
- Remove libstdc++ and add libc++
- add GLKit.framework (if not there previously)

我的框架列表中缺少上面提到的一些文件。为了防止其他人遇到同样的问题,我附上完整列表的截图。
我浪费了近6个小时来解决这个问题!! :( enter image description here

1
你节省了我6个小时的时间! - user523234

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接