Full SDK for iOS 集成到项目中,爆编译错误,同时问问SDK有支持BitCode的版本吗?

ld: warning: object file (…/3rdPartFrameworks/AgoraSdk/libs/AgoraRtcCryptoLoader.framework/AgoraRtcCryptoLoader(AgoraRtcCryptoLoader.o)) was built for newer iOS version (10.1) than being linked (9.0)



ld: warning: object file (…/3rdPartFrameworks/AgoraSdk/libs/AgoraRtcEngineKit.framework/AgoraRtcEngineKit(libAgoraRTCEngine.a-arm64-master.o)) was built for newer iOS version (9.3) than being linked (9.0)



Undefined symbols for architecture arm64:



  "_VTDecompressionSessionCreate", referenced from:



      AgoraRTC::H264VideoToolboxDecoder::ResetDecompressionSession() in AgoraRtcEngineKit(libAgoraRTCEngine.a-arm64-master.o)



  "_kVTDecompressionPropertyKey_RealTime", referenced from:



      AgoraRTC::H264VideoToolboxDecoder::ResetDecompressionSession() in AgoraRtcEngineKit(libAgoraRTCEngine.a-arm64-master.o)



      AgoraRTC::H264VideoToolboxDecoder::ConfigureDecompressionSession() in AgoraRtcEngineKit(libAgoraRTCEngine.a-arm64-master.o)



  "_VTDecompressionSessionDecodeFrame", referenced from:



      AgoraRTC::H264VideoToolboxDecoder::Decode(AgoraRTC::EncodedImage const&, bool, AgoraRTC::RTPFragmentationHeader const*, AgoraRTC::CodecSpecificInfo const*, long long) in AgoraRtcEngineKit(libAgoraRTCEngine.a-arm64-master.o)



  "_VTDecompressionSessionInvalidate", referenced from:



      AgoraRTC::H264VideoToolboxDecoder::DestroyDecompressionSession() in AgoraRtcEngineKit(libAgoraRTCEngine.a-arm64-master.o)



  "_kVTCompressionPropertyKey_AverageBitRate", referenced from:



      AgoraRTC::H264VideoToolboxEncoder::SetEncoderBitrateBps(unsigned int) in AgoraRtcEngineKit(libAgoraRTCEngine.a-arm64-master.o)



  "_kVTCompressionPropertyKey_DataRateLimits", referenced from:



      AgoraRTC::H264VideoToolboxEncoder::SetEncoderBitrateBps(unsigned int) in AgoraRtcEngineKit(libAgoraRTCEngine.a-arm64-master.o)



  "_kVTProfileLevel_H264_High_AutoLevel", referenced from:



      AgoraRTC::H264VideoToolboxEncoder::ConfigureCompressionSession() in AgoraRtcEngineKit(libAgoraRTCEngine.a-arm64-master.o)



  "_VTCompressionSessionCompleteFrames", referenced from:



      AgoraRTC::H264VideoToolboxEncoder::Release() in AgoraRtcEngineKit(libAgoraRTCEngine.a-arm64-master.o)



  "_kVTCompressionPropertyKey_ProfileLevel", referenced from:



      AgoraRTC::H264VideoToolboxEncoder::ConfigureCompressionSession() in AgoraRtcEngineKit(libAgoraRTCEngine.a-arm64-master.o)



  "_kVTCompressionPropertyKey_AllowFrameReordering", referenced from:



      AgoraRTC::H264VideoToolboxEncoder::ConfigureCompressionSession() in AgoraRtcEngineKit(libAgoraRTCEngine.a-arm64-master.o)



  "_VTSessionSetProperty", referenced from:



      internal::SetVTSessionProperty(void const*, __CFString const*, int) in AgoraRtcEngineKit(libAgoraRTCEngine.a-arm64-master.o)



      internal::SetVTSessionProperty(void const*, __CFString const*, unsigned int) in AgoraRtcEngineKit(libAgoraRTCEngine.a-arm64-master.o)



      internal::SetVTSessionProperty(void const*, __CFString const*, bool) in AgoraRtcEngineKit(libAgoraRTCEngine.a-arm64-master.o)



      internal::SetVTSessionProperty(void const*, __CFString const*, int*, int) in AgoraRtcEngineKit(libAgoraRTCEngine.a-arm64-master.o)



      internal::SetVTSessionProperty(void const*, __CFString const*, __CFString const*) in AgoraRtcEngineKit(libAgoraRTCEngine.a-arm64-master.o)



      AgoraRTC::H264VideoToolboxDecoder::ResetDecompressionSession() in AgoraRtcEngineKit(libAgoraRTCEngine.a-arm64-master.o)



      AgoraRTC::H264VideoToolboxDecoder::ConfigureDecompressionSession() in AgoraRtcEngineKit(libAgoraRTCEngine.a-arm64-master.o)



      …



  "_kVTCompressionPropertyKey_MaxKeyFrameIntervalDuration", referenced from:



      AgoraRTC::H264VideoToolboxEncoder::ConfigureCompressionSession() in AgoraRtcEngineKit(libAgoraRTCEngine.a-arm64-master.o)



  "_VTCompressionSessionEncodeFrame", referenced from:



      AgoraRTC::H264VideoToolboxEncoder::Encode(AgoraRTC::I420VideoFrame const&, AgoraRTC::CodecSpecificInfo const*, std::__1::vector<AgoraRTC::VideoFrameType, std::__1::allocator<AgoraRTC::VideoFrameType> > const*) in AgoraRtcEngineKit(libAgoraRTCEngine.a-arm64-master.o)



  "_VTCompressionSessionCreate", referenced from:



      AgoraRTC::H264VideoToolboxEncoder::ResetCompressionSession() in AgoraRtcEngineKit(libAgoraRTCEngine.a-arm64-master.o)



  "_VTCompressionSessionInvalidate", referenced from:



      AgoraRTC::H264VideoToolboxEncoder::DestroyCompressionSession() in AgoraRtcEngineKit(libAgoraRTCEngine.a-arm64-master.o)



  "_VTCompressionSessionGetPixelBufferPool", referenced from:



      AgoraRTC::H264VideoToolboxEncoder::Encode(AgoraRTC::I420VideoFrame const&, AgoraRTC::CodecSpecificInfo const*, std::__1::vector<AgoraRTC::VideoFrameType, std::__1::allocator<AgoraRTC::VideoFrameType> > const*) in AgoraRtcEngineKit(libAgoraRTCEngine.a-arm64-master.o)



  "_VTDecompressionSessionWaitForAsynchronousFrames", referenced from:



      AgoraRTC::H264VideoToolboxDecoder::Release() in AgoraRtcEngineKit(libAgoraRTCEngine.a-arm64-master.o)



      AgoraRTC::H264VideoToolboxDecoder::FlushRemainmingFrames() in AgoraRtcEngineKit(libAgoraRTCEngine.a-arm64-master.o)



  "_kVTCompressionPropertyKey_RealTime", referenced from:



      AgoraRTC::H264VideoToolboxEncoder::ConfigureCompressionSession() in AgoraRtcEngineKit(libAgoraRTCEngine.a-arm64-master.o)



  "_kVTEncodeFrameOptionKey_ForceKeyFrame", referenced from:



      AgoraRTC::H264VideoToolboxEncoder::Encode(AgoraRTC::I420VideoFrame const&, AgoraRTC::CodecSpecificInfo const*, std::__1::vector<AgoraRTC::VideoFrameType, std::__1::allocator<AgoraRTC::VideoFrameType> > const*) in AgoraRtcEngineKit(libAgoraRTCEngine.a-arm64-master.o)



ld: symbol(s) not found for architecture arm64



clang: error: linker command failed with exit code 1 (use -v to see invocation)

3个回答
Fidel Mao 回复于 2017-03-08 08:02

1。 上面的错误麻烦您检查下是不是包没有应用

2。我们不支持bitcode, 因为我们有汇编优化,有冲突。
回复·1

您好,framework有引用,search path也检查了,没问题。

刚刚看到文档底部,有这样一段话:Agora Native SDK默认使用libc++ (LLVM),如需使用libstdc++ (GNU),我项目中使用Cocoapods管理,Link Binary With Libraries用的是libstdc++.tbd,是不是需要改用这个stdc++编译的SDK?

李亮 回复于 2017-03-08 10:00

添加VideoToolBox.framework编译通过了。

 
文档里没有看到说要这个库,然后新建的demo工程也是直接拖进去SDK的framework就完事了,不知道为什么会这样?有什么好的解释吗?
回复·2

巨坑

我添加了VideoToolBox.framework 编译依旧过不鸟报跟你相同的错误,请问还需要其他设置吗?

Fidel Mao 回复于 2017-03-08 11:36

https://docs.agora.io/cn/user_guide/communication/ios_user_guide_communication.html

回复·0