cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Announcements
Please note that Remote Expert Mobile announced end-of-life and support will end on February 28, 2022.
6759
Views
0
Helpful
3
Replies
Highlighted
Enthusiast

REM IOS undefined symbol for architecture arm64

I tried to use REM advanced sdk for iOS 11.6 ES 8

But when I replaced the old 11.5 sdk and compile the app xcode shows this error

Ld /Users/msi/Library/Developer/Xcode/DerivedData/REMDanamon-frtdfcaplqqfnpeenyzvoneiubsi/Build/Intermediates.noindex/REM6ES4.build/Debug-iphoneos/REM6ES4.build/Objects-normal/arm64/REM6ES4 normal arm64
cd /Users/msi/Desktop/REM6ES4
export IPHONEOS_DEPLOYMENT_TARGET=8.0
export PATH="/Users/msi/Desktop/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Users/msi/Desktop/Xcode.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Users/msi/Desktop/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch arm64 -isysroot /Users/msi/Desktop/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.2.sdk -L/Users/msi/Library/Developer/Xcode/DerivedData/REMDanamon-frtdfcaplqqfnpeenyzvoneiubsi/Build/Products/Debug-iphoneos -L/Users/msi/Desktop/assist_ios_sdk -F/Users/msi/Library/Developer/Xcode/DerivedData/REMDanamon-frtdfcaplqqfnpeenyzvoneiubsi/Build/Products/Debug-iphoneos -F/Users/msi/Desktop/REM6ES4/target/lib -F/Users/msi/Desktop/REM6ES4/Frameworks -filelist /Users/msi/Library/Developer/Xcode/DerivedData/REMDanamon-frtdfcaplqqfnpeenyzvoneiubsi/Build/Intermediates.noindex/REM6ES4.build/Debug-iphoneos/REM6ES4.build/Objects-normal/arm64/REM6ES4.LinkFileList -Xlinker -no_pie -miphoneos-version-min=8.0 -dead_strip -Xlinker -object_path_lto -Xlinker /Users/msi/Library/Developer/Xcode/DerivedData/REMDanamon-frtdfcaplqqfnpeenyzvoneiubsi/Build/Intermediates.noindex/REM6ES4.build/Debug-iphoneos/REM6ES4.build/Objects-normal/arm64/REM6ES4_lto.o -Xlinker -no_deduplicate -fobjc-arc -fobjc-link-runtime -ObjC -lc++ -framework ACBClientSDK -framework WebKit -framework MobileCoreServices -framework ImageIO -lAssistSDK -framework GLKit -lsqlite3 -lc++ -framework Foundation -framework MediaPlayer -framework SystemConfiguration -licucore -framework CFNetwork -framework Security -framework OpenGLES -framework CoreVideo -framework CoreMedia -framework QuartzCore -framework AudioToolbox -framework AVFoundation -framework UIKit -framework CoreGraphics -Xlinker -dependency_info -Xlinker /Users/msi/Library/Developer/Xcode/DerivedData/REMDanamon-frtdfcaplqqfnpeenyzvoneiubsi/Build/Intermediates.noindex/REM6ES4.build/Debug-iphoneos/REM6ES4.build/Objects-normal/arm64/REM6ES4_dependency_info.dat -o /Users/msi/Library/Developer/Xcode/DerivedData/REMDanamon-frtdfcaplqqfnpeenyzvoneiubsi/Build/Intermediates.noindex/REM6ES4.build/Debug-iphoneos/REM6ES4.build/Objects-normal/arm64/REM6ES4

ld: warning: directory not found for option '-F/Users/msi/Desktop/REM6ES4/target/lib'
ld: warning: -no_pie ignored for arm64
Undefined symbols for architecture arm64:
"_kVTCompressionPropertyKey_ProfileLevel", referenced from:
webrtc::H264VideoToolboxEncoder::ConfigureCompressionSession() in ACBClientSDK(h264_video_toolbox_encoder.o)
"_kVTCompressionPropertyKey_AllowFrameReordering", referenced from:
webrtc::H264VideoToolboxEncoder::ConfigureCompressionSession() in ACBClientSDK(h264_video_toolbox_encoder.o)
"_VTCompressionSessionCreate", referenced from:
webrtc::H264VideoToolboxEncoder::ResetCompressionSession() in ACBClientSDK(h264_video_toolbox_encoder.o)
"_kVTCompressionPropertyKey_DataRateLimits", referenced from:
webrtc::H264VideoToolboxEncoder::SetEncoderBitrateBps(unsigned int) in ACBClientSDK(h264_video_toolbox_encoder.o)
"_kVTCompressionPropertyKey_MaxKeyFrameInterval", referenced from:
webrtc::H264VideoToolboxEncoder::ConfigureCompressionSession() in ACBClientSDK(h264_video_toolbox_encoder.o)
"_kVTProfileLevel_H264_Baseline_4_0", referenced from:
internal::ExtractProfile(cricket::VideoCodec const&) in ACBClientSDK(h264_video_toolbox_encoder.o)
"_kVTCompressionPropertyKey_AverageBitRate", referenced from:
webrtc::H264VideoToolboxEncoder::SetEncoderBitrateBps(unsigned int) in ACBClientSDK(h264_video_toolbox_encoder.o)
"_kVTProfileLevel_H264_Main_4_0", referenced from:
internal::ExtractProfile(cricket::VideoCodec const&) in ACBClientSDK(h264_video_toolbox_encoder.o)
"_kVTProfileLevel_H264_Baseline_3_1", referenced from:
internal::ExtractProfile(cricket::VideoCodec const&) in ACBClientSDK(h264_video_toolbox_encoder.o)
"_kVTProfileLevel_H264_Baseline_3_2", referenced from:
internal::ExtractProfile(cricket::VideoCodec const&) in ACBClientSDK(h264_video_toolbox_encoder.o)
"_kVTProfileLevel_H264_Baseline_4_1", referenced from:
internal::ExtractProfile(cricket::VideoCodec const&) in ACBClientSDK(h264_video_toolbox_encoder.o)
"_VTCompressionSessionInvalidate", referenced from:
webrtc::H264VideoToolboxEncoder::DestroyCompressionSession() in ACBClientSDK(h264_video_toolbox_encoder.o)
"_kVTProfileLevel_H264_Baseline_4_2", referenced from:
internal::ExtractProfile(cricket::VideoCodec const&) in ACBClientSDK(h264_video_toolbox_encoder.o)
"_kVTEncodeFrameOptionKey_ForceKeyFrame", referenced from:
webrtc::H264VideoToolboxEncoder::Encode(webrtc::VideoFrame const&, webrtc::CodecSpecificInfo const*, std::_1::vector<webrtc::FrameType, std::_1::allocator<webrtc::FrameType> > const*) in ACBClientSDK(h264_video_toolbox_encoder.o)
"_kVTProfileLevel_H264_Baseline_5_0", referenced from:
internal::ExtractProfile(cricket::VideoCodec const&) in ACBClientSDK(h264_video_toolbox_encoder.o)
"_VTCompressionSessionGetPixelBufferPool", referenced from:
webrtc::H264VideoToolboxEncoder::Encode(webrtc::VideoFrame const&, webrtc::CodecSpecificInfo const*, std::_1::vector<webrtc::FrameType, std::_1::allocator<webrtc::FrameType> > const*) in ACBClientSDK(h264_video_toolbox_encoder.o)
"_kVTProfileLevel_H264_Baseline_5_2", referenced from:
internal::ExtractProfile(cricket::VideoCodec const&) in ACBClientSDK(h264_video_toolbox_encoder.o)
"_kVTProfileLevel_H264_Baseline_5_1", referenced from:
internal::ExtractProfile(cricket::VideoCodec const&) in ACBClientSDK(h264_video_toolbox_encoder.o)
"_kVTProfileLevel_H264_Main_AutoLevel", referenced from:
internal::ExtractProfile(cricket::VideoCodec const&) in ACBClientSDK(h264_video_toolbox_encoder.o)
"_kVTProfileLevel_H264_High_4_0", referenced from:
internal::ExtractProfile(cricket::VideoCodec const&) in ACBClientSDK(h264_video_toolbox_encoder.o)
"_VTCompressionSessionEncodeFrame", referenced from:
webrtc::H264VideoToolboxEncoder::Encode(webrtc::VideoFrame const&, webrtc::CodecSpecificInfo const*, std::_1::vector<webrtc::FrameType, std::_1::allocator<webrtc::FrameType> > const*) in ACBClientSDK(h264_video_toolbox_encoder.o)
"_kVTProfileLevel_H264_High_3_2", referenced from:
internal::ExtractProfile(cricket::VideoCodec const&) in ACBClientSDK(h264_video_toolbox_encoder.o)
"_kVTProfileLevel_H264_High_4_1", referenced from:
internal::ExtractProfile(cricket::VideoCodec const&) in ACBClientSDK(h264_video_toolbox_encoder.o)
"_kVTCompressionPropertyKey_MaxKeyFrameIntervalDuration", referenced from:
webrtc::H264VideoToolboxEncoder::ConfigureCompressionSession() in ACBClientSDK(h264_video_toolbox_encoder.o)
"_kVTProfileLevel_H264_High_4_2", referenced from:
internal::ExtractProfile(cricket::VideoCodec const&) in ACBClientSDK(h264_video_toolbox_encoder.o)
"_kVTProfileLevel_H264_High_5_0", referenced from:
internal::ExtractProfile(cricket::VideoCodec const&) in ACBClientSDK(h264_video_toolbox_encoder.o)
"_kVTDecompressionPropertyKey_RealTime", referenced from:
webrtc::H264VideoToolboxDecoder::ResetDecompressionSession() in ACBClientSDK(h264_video_toolbox_decoder.o)
"_kVTProfileLevel_H264_High_5_1", referenced from:
internal::ExtractProfile(cricket::VideoCodec const&) in ACBClientSDK(h264_video_toolbox_encoder.o)
"_kVTProfileLevel_H264_High_5_2", referenced from:
internal::ExtractProfile(cricket::VideoCodec const&) in ACBClientSDK(h264_video_toolbox_encoder.o)
"_kVTProfileLevel_H264_Baseline_AutoLevel", referenced from:
internal::ExtractProfile(cricket::VideoCodec const&) in ACBClientSDK(h264_video_toolbox_encoder.o)
"_kVTProfileLevel_H264_Main_3_1", referenced from:
internal::ExtractProfile(cricket::VideoCodec const&) in ACBClientSDK(h264_video_toolbox_encoder.o)
"_kVTProfileLevel_H264_Main_5_0", referenced from:
internal::ExtractProfile(cricket::VideoCodec const&) in ACBClientSDK(h264_video_toolbox_encoder.o)
"_VTDecompressionSessionDecodeFrame", referenced from:
webrtc::H264VideoToolboxDecoder::Decode(webrtc::EncodedImage const&, bool, webrtc::RTPFragmentationHeader const*, webrtc::CodecSpecificInfo const*, long long) in ACBClientSDK(h264_video_toolbox_decoder.o)
"_kVTProfileLevel_H264_Main_4_2", referenced from:
internal::ExtractProfile(cricket::VideoCodec const&) in ACBClientSDK(h264_video_toolbox_encoder.o)
"_kVTProfileLevel_H264_Main_5_1", referenced from:
internal::ExtractProfile(cricket::VideoCodec const&) in ACBClientSDK(h264_video_toolbox_encoder.o)
"_kVTProfileLevel_H264_Main_4_1", referenced from:
internal::ExtractProfile(cricket::VideoCodec const&) in ACBClientSDK(h264_video_toolbox_encoder.o)
"_kVTProfileLevel_H264_High_AutoLevel", referenced from:
internal::ExtractProfile(cricket::VideoCodec const&) in ACBClientSDK(h264_video_toolbox_encoder.o)
"_kVTProfileLevel_H264_Main_5_2", referenced from:
internal::ExtractProfile(cricket::VideoCodec const&) in ACBClientSDK(h264_video_toolbox_encoder.o)
"_kVTProfileLevel_H264_High_3_1", referenced from:
internal::ExtractProfile(cricket::VideoCodec const&) in ACBClientSDK(h264_video_toolbox_encoder.o)
"_kVTProfileLevel_H264_Baseline_3_0", referenced from:
internal::ExtractProfile(cricket::VideoCodec const&) in ACBClientSDK(h264_video_toolbox_encoder.o)
"_VTSessionSetProperty", referenced from:
webrtc::H264VideoToolboxDecoder::ResetDecompressionSession() in ACBClientSDK(h264_video_toolbox_decoder.o)
internal::SetVTSessionProperty(void const*, __CFString const*, int) in ACBClientSDK(h264_video_toolbox_encoder.o)
internal::SetVTSessionProperty(void const*, __CFString const*, unsigned int) in ACBClientSDK(h264_video_toolbox_encoder.o)
internal::SetVTSessionProperty(void const*, __CFString const*, bool) in ACBClientSDK(h264_video_toolbox_encoder.o)
internal::SetVTSessionProperty(void const*, __CFString const*, __CFString const*) in ACBClientSDK(h264_video_toolbox_encoder.o)
webrtc::H264VideoToolboxEncoder::SetEncoderBitrateBps(unsigned int) in ACBClientSDK(h264_video_toolbox_encoder.o)
"_kVTProfileLevel_H264_Main_3_2", referenced from:
internal::ExtractProfile(cricket::VideoCodec const&) in ACBClientSDK(h264_video_toolbox_encoder.o)
"_kVTCompressionPropertyKey_RealTime", referenced from:
webrtc::H264VideoToolboxEncoder::ConfigureCompressionSession() in ACBClientSDK(h264_video_toolbox_encoder.o)
"_kVTProfileLevel_H264_High_3_0", referenced from:
internal::ExtractProfile(cricket::VideoCodec const&) in ACBClientSDK(h264_video_toolbox_encoder.o)
"_kVTProfileLevel_H264_Main_3_0", referenced from:
internal::ExtractProfile(cricket::VideoCodec const&) in ACBClientSDK(h264_video_toolbox_encoder.o)
"_VTDecompressionSessionCreate", referenced from:
webrtc::H264VideoToolboxDecoder::ResetDecompressionSession() in ACBClientSDK(h264_video_toolbox_decoder.o)
"_VTDecompressionSessionInvalidate", referenced from:
webrtc::H264VideoToolboxDecoder::DestroyDecompressionSession() in ACBClientSDK(h264_video_toolbox_decoder.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

any idea?

 

Thx

1 ACCEPTED SOLUTION

Accepted Solutions
Highlighted

Hi Edwin,

 

I also think 

Metal.framework is needed in some circumstances according to the latest unpublished documents. I'll raise a bug for this.

 

Select the following iOS native dependencies from the iOS folder:

 OpenGLES.framework

 CoreVideo.framework

 CoreMedia.framework

 QuartzCore.framework

 AudioToolbox.framework

 AVFoundation.framework

 UIKit.framework

 Foundation.framework

 CoreGraphics.framework

 CFNetwork.framework

 Security.framework

 libicucore.dylib.

 GLKit.framework

 VideoToolbox.framework

 Metal.framework

 libsqlite3.tbd (or equivalent alternative)

 libc++.tbd (or equivalent alternative)

View solution in original post

3 REPLIES 3
Highlighted
Beginner

Hi Edwin,

According to
https://stackoverflow.com/questions/9458739/ld-warning-directory-not-found-for-option
the general solution is to:


1. Click on your project (targets)
2. Click on *Build Settings*
3. Under *Library Search Paths*, delete the paths

Rob
Highlighted

Hi Rob,

 

That's not the solution for this problem but I've fixed the problem now.

I need to add videotoolbox.framewok for REM 11.6, I don't need to add that framework on older release(REM 10.6&11.5).

But it's not stated on Cisco Remote Expert Mobile Advanced Developer's Guide, Release 11.6 (1)

 

Regards, 

 

Edwin R

Highlighted

Hi Edwin,

 

I also think 

Metal.framework is needed in some circumstances according to the latest unpublished documents. I'll raise a bug for this.

 

Select the following iOS native dependencies from the iOS folder:

 OpenGLES.framework

 CoreVideo.framework

 CoreMedia.framework

 QuartzCore.framework

 AudioToolbox.framework

 AVFoundation.framework

 UIKit.framework

 Foundation.framework

 CoreGraphics.framework

 CFNetwork.framework

 Security.framework

 libicucore.dylib.

 GLKit.framework

 VideoToolbox.framework

 Metal.framework

 libsqlite3.tbd (or equivalent alternative)

 libc++.tbd (or equivalent alternative)

View solution in original post

This widget could not be displayed.