我通过另一个静态库建立webRTC和我的应用程序访问WebRTC API。 LibB 当我将LibB与我的应用程序链接并构建它时,它失败并显示以下日志: ****我已针对AMD64 / ARMv7构建WebRTC ** 架构arm64的未定义符号:
Undefined symbols for architecture arm64:
"webrtc::FIRFilterNEON::FIRFilterNEON(float const*, unsigned long, unsigned long)", referenced from:
webrtc::FIRFilter::Create(float const*, unsigned long, unsigned long) in LibB.a(fir_filter.o)
"vtable for webrtc::DenoiserFilterNEON", referenced from:
webrtc::DenoiserFilterNEON::DenoiserFilterNEON() in LibB.a(denoiser_filter.o)
NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
"webrtc::SincResampler::Convolve_NEON(float const*, float const*, float const*, double)", referenced from:
webrtc::SincResampler::Resample(unsigned long, float*) in LibB.a(sinc_resampler.o)
"_WebRtcNsx_NoiseEstimationNeon", referenced from:
l008 in LibB.a(nsx_core.o)
"_SHA1_Final", referenced from:
_sctp_sha1_final in LibB.a(sctp_sha1.o)
"_EVP_MD_CTX_copy", referenced from:
_hmac_start in LibB.a(hmac_ossl.o)
"_EVP_DigestInit", referenced from:
l002 in LibB.a(hmac_ossl.o)
"_EVP_EncryptUpdate", referenced from:
_aes_icm_openssl_encrypt in LibB.a(aes_icm_ossl.o)
"_EVP_EncryptFinal_ex", referenced from:
_aes_icm_openssl_encrypt in LibB.a(aes_icm_ossl.o)
"_EVP_aes_256_ctr", referenced from:
_aes_icm_openssl_set_iv in LibB.a(aes_icm_ossl.o)
"_EVP_aes_128_ctr", referenced from:
_aes_icm_openssl_set_iv in LibB.a(aes_icm_ossl.o)
"_EVP_EncryptInit_ex", referenced from:
_aes_icm_openssl_set_iv in LibB.a(aes_icm_ossl.o)
"_EVP_aes_256_gcm", referenced from:
_aes_gcm_openssl_set_iv in LibB.a(aes_gcm_ossl.o)
"_EVP_DigestFinal", referenced from:
l004 in LibB.a(hmac_ossl.o)
"_EVP_aes_128_gcm", referenced from:
_aes_gcm_openssl_set_iv in LibB.a(aes_gcm_ossl.o)
"_EVP_CIPHER_CTX_cleanup", referenced from:
_aes_gcm_openssl_dealloc in LibB.a(aes_gcm_ossl.o)
_aes_gcm_openssl_context_init in LibB.a(aes_gcm_ossl.o)
_aes_icm_openssl_dealloc in LibB.a(aes_icm_ossl.o)
_aes_icm_openssl_context_init in LibB.a(aes_icm_ossl.o)
"_EVP_CIPHER_CTX_init", referenced from:
_aes_gcm_openssl_alloc in LibB.a(aes_gcm_ossl.o)
_aes_icm_openssl_alloc in LibB.a(aes_icm_ossl.o)
"google::protobuf::internal::WireFormatLite::WriteBytes(int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, google::protobuf::io::CodedOutputStream*)", referenced from:
webrtc::audioproc::ReverseStream::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(debug.pb.o)
webrtc::audioproc::Stream::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(debug.pb.o)
"google::protobuf::io::CodedInputStream::PopLimit(int)", referenced from:
bool google::protobuf::internal::WireFormatLite::ReadPackedPrimitiveNoInline<unsigned int, (google::protobuf::internal::WireFormatLite::FieldType)13>(google::protobuf::io::CodedInputStream*, google::protobuf::RepeatedField<unsigned int>*) in LibB.a(rtc_event_log.pb.o)
"google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, google::protobuf::io::CodedOutputStream*)", referenced from:
webrtc::rtclog::DecoderConfig::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::RtpHeaderExtension::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::EncoderConfig::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
webrtc::audioproc::Config::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(debug.pb.o)
"google::protobuf::internal::WireFormatLite::WriteInt32(int, int, google::protobuf::io::CodedOutputStream*)", referenced from:
webrtc::rtclog::BwePacketLossEvent::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::DecoderConfig::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::RtpHeaderExtension::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::RtxConfig::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::RtxMap::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::VideoSendConfig::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::EncoderConfig::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
...
"google::protobuf::internal::WireFormatLite::WriteUInt32(int, unsigned int, google::protobuf::io::CodedOutputStream*)", referenced from:
webrtc::rtclog::RtpPacket::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::AudioPlayoutEvent::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::BwePacketLossEvent::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::VideoReceiveConfig::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::RtxConfig::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::VideoSendConfig::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::AudioReceiveConfig::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
...
"google::protobuf::internal::WireFormatLite::ReadBytes(google::protobuf::io::CodedInputStream*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*)", referenced from:
webrtc::rtclog::RtpPacket::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::RtcpPacket::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in LibB.a(rtc_event_log.pb.o)
google::protobuf::internal::WireFormatLite::ReadString(google::protobuf::io::CodedInputStream*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*) in LibB.a(rtc_event_log.pb.o)
webrtc::audioproc::ReverseStream::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in LibB.a(debug.pb.o)
webrtc::audioproc::Stream::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in LibB.a(debug.pb.o)
"google::protobuf::MessageLite::InitializationErrorString() const", referenced from:
vtable for webrtc::rtclog::EventStream in LibB.a(rtc_event_log.pb.o)
vtable for webrtc::rtclog::Event in LibB.a(rtc_event_log.pb.o)
vtable for webrtc::rtclog::RtpPacket in LibB.a(rtc_event_log.pb.o)
vtable for webrtc::rtclog::RtcpPacket in LibB.a(rtc_event_log.pb.o)
vtable for webrtc::rtclog::AudioPlayoutEvent in LibB.a(rtc_event_log.pb.o)
vtable for webrtc::rtclog::BwePacketLossEvent in LibB.a(rtc_event_log.pb.o)
vtable for webrtc::rtclog::VideoReceiveConfig in LibB.a(rtc_event_log.pb.o)
...
"google::protobuf::internal::ArenaStringPtr::AssignWithDefault(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const*, google::protobuf::internal::ArenaStringPtr)", referenced from:
webrtc::rtclog::RtpPacket::MergeFrom(webrtc::rtclog::RtpPacket const&) in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::RtcpPacket::MergeFrom(webrtc::rtclog::RtcpPacket const&) in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::DecoderConfig::MergeFrom(webrtc::rtclog::DecoderConfig const&) in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::RtpHeaderExtension::MergeFrom(webrtc::rtclog::RtpHeaderExtension const&) in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::EncoderConfig::MergeFrom(webrtc::rtclog::EncoderConfig const&) in LibB.a(rtc_event_log.pb.o)
webrtc::audioproc::ReverseStream::MergeFrom(webrtc::audioproc::ReverseStream const&) in LibB.a(debug.pb.o)
webrtc::audioproc::Stream::MergeFrom(webrtc::audioproc::Stream const&) in LibB.a(debug.pb.o)
...
"google::protobuf::internal::WireFormatLite::WriteInt64(int, long long, google::protobuf::io::CodedOutputStream*)", referenced from:
webrtc::rtclog::Event::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
"google::protobuf::io::CodedInputStream::DecrementRecursionDepthAndPopLimit(int)", referenced from:
bool google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual<webrtc::rtclog::RtpPacket>(google::protobuf::io::CodedInputStream*, webrtc::rtclog::RtpPacket*) in LibB.a(rtc_event_log.pb.o)
bool google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual<webrtc::rtclog::RtcpPacket>(google::protobuf::io::CodedInputStream*, webrtc::rtclog::RtcpPacket*) in LibB.a(rtc_event_log.pb.o)
bool google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual<webrtc::rtclog::AudioPlayoutEvent>(google::protobuf::io::CodedInputStream*, webrtc::rtclog::AudioPlayoutEvent*) in LibB.a(rtc_event_log.pb.o)
bool google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual<webrtc::rtclog::BwePacketLossEvent>(google::protobuf::io::CodedInputStream*, webrtc::rtclog::BwePacketLossEvent*) in LibB.a(rtc_event_log.pb.o)
bool google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual<webrtc::rtclog::VideoReceiveConfig>(google::protobuf::io::CodedInputStream*, webrtc::rtclog::VideoReceiveConfig*) in LibB.a(rtc_event_log.pb.o)
bool google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual<webrtc::rtclog::VideoSendConfig>(google::protobuf::io::CodedInputStream*, webrtc::rtclog::VideoSendConfig*) in LibB.a(rtc_event_log.pb.o)
bool google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual<webrtc::rtclog::AudioReceiveConfig>(google::protobuf::io::CodedInputStream*, webrtc::rtclog::AudioReceiveConfig*) in LibB.a(rtc_event_log.pb.o)
...
"google::protobuf::io::CodedInputStream::PushLimit(int)", referenced from:
bool google::protobuf::internal::WireFormatLite::ReadPackedPrimitiveNoInline<unsigned int, (google::protobuf::internal::WireFormatLite::FieldType)13>(google::protobuf::io::CodedInputStream*, google::protobuf::RepeatedField<unsigned int>*) in LibB.a(rtc_event_log.pb.o)
"google::protobuf::io::CodedOutputStream::VarintSize64(unsigned long long)", referenced from:
google::protobuf::internal::WireFormatLite::Int64Size(long long) in LibB.a(rtc_event_log.pb.o)
"google::protobuf::io::CodedOutputStream::WriteVarint32SlowPath(unsigned int)", referenced from:
google::protobuf::io::CodedOutputStream::WriteVarint32(unsigned int) in LibB.a(rtc_event_log.pb.o)
"google::protobuf::internal::ArenaStringPtr::MutableNoArena(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const*)", referenced from:
webrtc::rtclog::EventStream::mutable_unknown_fields() in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::Event::mutable_unknown_fields() in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::RtpPacket::mutable_header() in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::RtpPacket::mutable_unknown_fields() in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::RtcpPacket::mutable_packet_data() in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::RtcpPacket::mutable_unknown_fields() in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::AudioPlayoutEvent::mutable_unknown_fields() in LibB.a(rtc_event_log.pb.o)
...
"google::protobuf::io::CodedOutputStream::WriteRaw(void const*, int)", referenced from:
webrtc::rtclog::EventStream::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::Event::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::RtpPacket::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::RtcpPacket::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::AudioPlayoutEvent::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::BwePacketLossEvent::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::VideoReceiveConfig::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
...
"google::protobuf::io::CodedInputStream::ReadLengthAndPushLimit()", referenced from:
bool google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth<webrtc::rtclog::Event>(google::protobuf::io::CodedInputStream*, webrtc::rtclog::Event*) in LibB.a(rtc_event_log.pb.o)
bool google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth<webrtc::rtclog::RtxMap>(google::protobuf::io::CodedInputStream*, webrtc::rtclog::RtxMap*) in LibB.a(rtc_event_log.pb.o)
bool google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth<webrtc::rtclog::RtpHeaderExtension>(google::protobuf::io::CodedInputStream*, webrtc::rtclog::RtpHeaderExtension*) in LibB.a(rtc_event_log.pb.o)
bool google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth<webrtc::rtclog::DecoderConfig>(google::protobuf::io::CodedInputStream*, webrtc::rtclog::DecoderConfig*) in LibB.a(rtc_event_log.pb.o)
"google::protobuf::internal::LogMessage::operator<<(int)", referenced from:
l003 in LibB.a(rtc_event_log.pb.o)
l003 in LibB.a(debug.pb.o)
"google::protobuf::io::CodedInputStream::CheckEntireMessageConsumedAndPopLimit(int)", referenced from:
bool google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth<webrtc::rtclog::Event>(google::protobuf::io::CodedInputStream*, webrtc::rtclog::Event*) in LibB.a(rtc_event_log.pb.o)
bool google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth<webrtc::rtclog::RtxMap>(google::protobuf::io::CodedInputStream*, webrtc::rtclog::RtxMap*) in LibB.a(rtc_event_log.pb.o)
bool google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth<webrtc::rtclog::RtpHeaderExtension>(google::protobuf::io::CodedInputStream*, webrtc::rtclog::RtpHeaderExtension*) in LibB.a(rtc_event_log.pb.o)
bool google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth<webrtc::rtclog::DecoderConfig>(google::protobuf::io::CodedInputStream*, webrtc::rtclog::DecoderConfig*) in LibB.a(rtc_event_log.pb.o)
"google::protobuf::io::CodedOutputStream::CodedOutputStream(google::protobuf::io::ZeroCopyOutputStream*, bool)", referenced from:
webrtc::rtclog::EventStream::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::Event::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::RtpPacket::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::RtcpPacket::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::AudioPlayoutEvent::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::BwePacketLossEvent::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::VideoReceiveConfig::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in LibB.a(rtc_event_log.pb.o)
...
"google::protobuf::internal::ArenaStringPtr::DestroyNoArena(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const*)", referenced from:
webrtc::rtclog::EventStream::SharedDtor() in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::Event::SharedDtor() in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::RtpPacket::SharedDtor() in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::RtcpPacket::SharedDtor() in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::AudioPlayoutEvent::SharedDtor() in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::BwePacketLossEvent::SharedDtor() in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::VideoReceiveConfig::SharedDtor() in LibB.a(rtc_event_log.pb.o)
...
"_SHA1_Init", referenced from:
_sctp_sha1_init in LibB.a(sctp_sha1.o)
"vtable for google::protobuf::MessageLite", referenced from:
google::protobuf::MessageLite::MessageLite() in LibB.a(rtc_event_log.pb.o)
NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
"google::protobuf::GoogleOnceInit(long*, void (*)())", referenced from:
webrtc::rtclog::protobuf_AddDesc_rtc_5fevent_5flog_2eproto() in LibB.a(rtc_event_log.pb.o)
webrtc::audioproc::protobuf_AddDesc_debug_2eproto() in LibB.a(debug.pb.o)
"google::protobuf::internal::OnShutdown(void (*)())", referenced from:
webrtc::rtclog::protobuf_AddDesc_rtc_5fevent_5flog_2eproto_impl() in LibB.a(rtc_event_log.pb.o)
webrtc::audioproc::protobuf_AddDesc_debug_2eproto_impl() in LibB.a(debug.pb.o)
"google::protobuf::MessageLite::SerializeAsString() const", referenced from:
webrtc::AudioProcessingImpl::WriteConfigMessage(bool) in LibB.a(audio_processing_impl.o)
"google::protobuf::io::CodedOutputStream::VarintSize32Fallback(unsigned int)", referenced from:
google::protobuf::io::CodedOutputStream::VarintSize32(unsigned int) in LibB.a(rtc_event_log.pb.o)
"_WebRtcSpl_CrossCorrelationNeon", referenced from:
l004 in LibB.a(spl_init.o)
"google::protobuf::internal::WireFormatLite::SkipField(google::protobuf::io::CodedInputStream*, unsigned int, google::protobuf::io::CodedOutputStream*)", referenced from:
webrtc::rtclog::EventStream::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::Event::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::RtpPacket::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::RtcpPacket::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::AudioPlayoutEvent::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::BwePacketLossEvent::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::VideoReceiveConfig::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in LibB.a(rtc_event_log.pb.o)
...
"_X509_set_pubkey", referenced from:
l004 in LibB.a(opensslidentity.o)
"_WebRtcSpl_MinValueW16Neon", referenced from:
l004 in LibB.a(spl_init.o)
我是webRTC的新手,花了更多的时间来解决这个问题。非常感谢任何帮助
由于
答案 0 :(得分:3)
尝试设置"Enable Bitcode" = "No"
转到Targers->设置->构建选项->启用BitCode =否
答案 1 :(得分:0)
您可以使用"webrtc/build/ios/build_ios_libs.sh"脚本生成WebRTC框架。
或者您可以尝试my framework
您需要将此框架链接到嵌入式二进制文件中的Xcode项目。
答案 2 :(得分:0)
你必须同时为arm64和arm生成框架
使用以下命令:
gn gen out/Debug-device --args='target_os="ios" target_cpu="x64" is_component_build=false additional_target_cpus=["arm", "arm64"] enable_dsyms=true ios_enable_code_signing = false'
ninja -C out/Debug-device rtc_sdk_framework_objc
答案 3 :(得分:0)
您是否尝试过使用CocoaPods?在我的项目中,我使用CocoaPods for WebRTC。
只需将其放入您的Pod文件中,然后按pod install
进行操作,就可以了!