Darwin: framework/static libraries are not usable with Xcode/Apple Clang's automatic linking
Describe your issue
I was trying my hand at porting one of the iOS examples to CMake. It went mostly smooth until I tried linking the executable, where I got a wall of linking errors e.g.
Example wall
FAILED: GstPlay/GstPlay.app/GstPlay
: && /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS16.2.sdk -miphoneos-version-min=12.0 -Wl,-headerpad_max_install_names GstPlay/CMakeFiles/GstPlay.dir/EaglUIVIew.m.o GstPlay/CMakeFiles/GstPlay.dir/AppDelegate.m.o GstPlay/CMakeFiles/GstPlay.dir/LibraryViewController.m.o GstPlay/CMakeFiles/GstPlay.dir/VideoViewController.m.o GstPlay/CMakeFiles/GstPlay.dir/main.m.o GstPlay/CMakeFiles/GstPlay.dir/gst_ios_init.m.o -o GstPlay/GstPlay.app/GstPlay -F/Volumes/Centricular/iPhone.sdk -framework GStreamer && :
ld: warning: object file (/Volumes/Centricular/iPhone.sdk/GStreamer.framework/GStreamer(libgstaws_a-libgstaws.prelinked.o)) was built for newer iOS version (18.0) than being linked (12.0)
ld: warning: object file (/Volumes/Centricular/iPhone.sdk/GStreamer.framework/GStreamer(libgstcdg_a-libgstcdg.prelinked.o)) was built for newer iOS version (17.2) than being linked (12.0)
ld: warning: object file (/Volumes/Centricular/iPhone.sdk/GStreamer.framework/GStreamer(libgstclaxon_a-libgstclaxon.prelinked.o)) was built for newer iOS version (17.2) than being linked (12.0)
ld: warning: object file (/Volumes/Centricular/iPhone.sdk/GStreamer.framework/GStreamer(libgstdav1d_a-libgstdav1d.prelinked.o)) was built for newer iOS version (17.2) than being linked (12.0)
ld: warning: object file (/Volumes/Centricular/iPhone.sdk/GStreamer.framework/GStreamer(libgstfallbackswitch_a-libgstfallbackswitch.prelinked.o)) was built for newer iOS version (17.2) than being linked (12.0)
ld: warning: object file (/Volumes/Centricular/iPhone.sdk/GStreamer.framework/GStreamer(libgstffv1_a-libgstffv1.prelinked.o)) was built for newer iOS version (17.2) than being linked (12.0)
ld: warning: object file (/Volumes/Centricular/iPhone.sdk/GStreamer.framework/GStreamer(libgstfmp4_a-libgstfmp4.prelinked.o)) was built for newer iOS version (17.2) than being linked (12.0)
ld: warning: object file (/Volumes/Centricular/iPhone.sdk/GStreamer.framework/GStreamer(libgstgif_a-libgstgif.prelinked.o)) was built for newer iOS version (17.2) than being linked (12.0)
ld: warning: object file (/Volumes/Centricular/iPhone.sdk/GStreamer.framework/GStreamer(libgsthlssink3_a-libgsthlssink3.prelinked.o)) was built for newer iOS version (17.2) than being linked (12.0)
ld: warning: object file (/Volumes/Centricular/iPhone.sdk/GStreamer.framework/GStreamer(libgsthsv_a-libgsthsv.prelinked.o)) was built for newer iOS version (17.2) than being linked (12.0)
ld: warning: object file (/Volumes/Centricular/iPhone.sdk/GStreamer.framework/GStreamer(libgstjson_a-libgstjson.prelinked.o)) was built for newer iOS version (17.2) than being linked (12.0)
ld: warning: object file (/Volumes/Centricular/iPhone.sdk/GStreamer.framework/GStreamer(libgstlewton_a-libgstlewton.prelinked.o)) was built for newer iOS version (17.2) than being linked (12.0)
ld: warning: object file (/Volumes/Centricular/iPhone.sdk/GStreamer.framework/GStreamer(libgstlivesync_a-libgstlivesync.prelinked.o)) was built for newer iOS version (17.2) than being linked (12.0)
ld: warning: object file (/Volumes/Centricular/iPhone.sdk/GStreamer.framework/GStreamer(libgstmp4_a-libgstmp4.prelinked.o)) was built for newer iOS version (17.2) than being linked (12.0)
ld: warning: object file (/Volumes/Centricular/iPhone.sdk/GStreamer.framework/GStreamer(libgstndi_a-libgstndi.prelinked.o)) was built for newer iOS version (17.2) than being linked (12.0)
ld: warning: object file (/Volumes/Centricular/iPhone.sdk/GStreamer.framework/GStreamer(libgstquinn_a-libgstquinn.prelinked.o)) was built for newer iOS version (18.0) than being linked (12.0)
ld: warning: object file (/Volumes/Centricular/iPhone.sdk/GStreamer.framework/GStreamer(libgstraptorq_a-libgstraptorq.prelinked.o)) was built for newer iOS version (17.2) than being linked (12.0)
ld: warning: object file (/Volumes/Centricular/iPhone.sdk/GStreamer.framework/GStreamer(libgstrav1e_a-libgstrav1e.prelinked.o)) was built for newer iOS version (18.0) than being linked (12.0)
ld: warning: object file (/Volumes/Centricular/iPhone.sdk/GStreamer.framework/GStreamer(libgstregex_a-libgstregex.prelinked.o)) was built for newer iOS version (17.2) than being linked (12.0)
ld: warning: object file (/Volumes/Centricular/iPhone.sdk/GStreamer.framework/GStreamer(libgstreqwest_a-libgstreqwest.prelinked.o)) was built for newer iOS version (17.2) than being linked (12.0)
ld: warning: object file (/Volumes/Centricular/iPhone.sdk/GStreamer.framework/GStreamer(libgstrsaudiofx_a-libgstrsaudiofx.prelinked.o)) was built for newer iOS version (17.2) than being linked (12.0)
ld: warning: object file (/Volumes/Centricular/iPhone.sdk/GStreamer.framework/GStreamer(libgstrsclosedcaption_a-libgstrsclosedcaption.prelinked.o)) was built for newer iOS version (17.2) than being linked (12.0)
ld: warning: object file (/Volumes/Centricular/iPhone.sdk/GStreamer.framework/GStreamer(libgstrsinter_a-libgstrsinter.prelinked.o)) was built for newer iOS version (17.2) than being linked (12.0)
ld: warning: object file (/Volumes/Centricular/iPhone.sdk/GStreamer.framework/GStreamer(libgstrsonvif_a-libgstrsonvif.prelinked.o)) was built for newer iOS version (17.2) than being linked (12.0)
ld: warning: object file (/Volumes/Centricular/iPhone.sdk/GStreamer.framework/GStreamer(libgstrspng_a-libgstrspng.prelinked.o)) was built for newer iOS version (17.2) than being linked (12.0)
ld: warning: object file (/Volumes/Centricular/iPhone.sdk/GStreamer.framework/GStreamer(libgstrsrtp_a-libgstrsrtp.prelinked.o)) was built for newer iOS version (17.2) than being linked (12.0)
ld: warning: object file (/Volumes/Centricular/iPhone.sdk/GStreamer.framework/GStreamer(libgstrsrtsp_a-libgstrsrtsp.prelinked.o)) was built for newer iOS version (17.2) than being linked (12.0)
ld: warning: object file (/Volumes/Centricular/iPhone.sdk/GStreamer.framework/GStreamer(libgstrstracers_a-libgstrstracers.prelinked.o)) was built for newer iOS version (17.2) than being linked (12.0)
ld: warning: object file (/Volumes/Centricular/iPhone.sdk/GStreamer.framework/GStreamer(libgstrsvideofx_a-libgstrsvideofx.prelinked.o)) was built for newer iOS version (17.2) than being linked (12.0)
ld: warning: object file (/Volumes/Centricular/iPhone.sdk/GStreamer.framework/GStreamer(libgstrswebrtc_a-libgstrswebrtc.prelinked.o)) was built for newer iOS version (18.0) than being linked (12.0)
ld: warning: object file (/Volumes/Centricular/iPhone.sdk/GStreamer.framework/GStreamer(libgsttextahead_a-libgsttextahead.prelinked.o)) was built for newer iOS version (17.2) than being linked (12.0)
ld: warning: object file (/Volumes/Centricular/iPhone.sdk/GStreamer.framework/GStreamer(libgsttextwrap_a-libgsttextwrap.prelinked.o)) was built for newer iOS version (17.2) than being linked (12.0)
ld: warning: object file (/Volumes/Centricular/iPhone.sdk/GStreamer.framework/GStreamer(libgstthreadshare_a-libgstthreadshare.prelinked.o)) was built for newer iOS version (18.0) than being linked (12.0)
ld: warning: object file (/Volumes/Centricular/iPhone.sdk/GStreamer.framework/GStreamer(libgsttogglerecord_a-libgsttogglerecord.prelinked.o)) was built for newer iOS version (17.2) than being linked (12.0)
ld: warning: object file (/Volumes/Centricular/iPhone.sdk/GStreamer.framework/GStreamer(libgsturiplaylistbin_a-libgsturiplaylistbin.prelinked.o)) was built for newer iOS version (17.2) than being linked (12.0)
ld: warning: object file (/Volumes/Centricular/iPhone.sdk/GStreamer.framework/GStreamer(libgstwebrtchttp_a-libgstwebrtchttp.prelinked.o)) was built for newer iOS version (17.2) than being linked (12.0)
ld: warning: object file (/Volumes/Centricular/iPhone.sdk/GStreamer.framework/GStreamer(libMoltenVK_a-libMoltenVK.a-arm64-master.o)) was built for newer iOS version (13.0) than being linked (12.0)
ld: warning: object file (/Volumes/Centricular/iPhone.sdk/GStreamer.framework/GStreamer(libSvtAv1Enc_a-itx.S.o)) was built for newer iOS version (18.0) than being linked (12.0)
ld: warning: object file (/Volumes/Centricular/iPhone.sdk/GStreamer.framework/GStreamer(libSvtAv1Enc_a-dav1d_asm.S.o)) was built for newer iOS version (18.0) than being linked (12.0)
ld: warning: object file (/Volumes/Centricular/iPhone.sdk/GStreamer.framework/GStreamer(librsvg-2_a-librsvg-2.prelinked.o)) was built for newer iOS version (17.2) than being linked (12.0)
Undefined symbols for architecture arm64:
"_AVCaptureDeviceTypeBuiltInDualCamera", referenced from:
l_switch.table.-[GstAVFVideoSrcImpl openDeviceInput] in GStreamer(libgstapplemedia_a-avfvideosrc.m.o)
"_AVCaptureDeviceTypeBuiltInTelephotoCamera", referenced from:
l_switch.table.-[GstAVFVideoSrcImpl openDeviceInput] in GStreamer(libgstapplemedia_a-avfvideosrc.m.o)
"_AVCaptureDeviceTypeBuiltInWideAngleCamera", referenced from:
l_switch.table.-[GstAVFVideoSrcImpl openDeviceInput] in GStreamer(libgstapplemedia_a-avfvideosrc.m.o)
"_AVFormatIDKey", referenced from:
-[GstAVFAssetReader capsToAudioSettings] in GStreamer(libgstapplemedia_a-avfassetsrc.m.o)
"_AVLayerVideoGravityResize", referenced from:
_gst_av_sample_video_sink_start in GStreamer(libgstapplemedia_a-avsamplevideosink.m.o)
___gst_av_sample_video_sink_start_block_invoke in GStreamer(libgstapplemedia_a-avsamplevideosink.m.o)
____request_data_block_invoke in GStreamer(libgstapplemedia_a-avsamplevideosink.m.o)
"_AVLayerVideoGravityResizeAspect", referenced from:
_gst_av_sample_video_sink_start in GStreamer(libgstapplemedia_a-avsamplevideosink.m.o)
___gst_av_sample_video_sink_start_block_invoke in GStreamer(libgstapplemedia_a-avsamplevideosink.m.o)
____request_data_block_invoke in GStreamer(libgstapplemedia_a-avsamplevideosink.m.o)
"_AVLinearPCMBitDepthKey", referenced from:
-[GstAVFAssetReader capsToAudioSettings] in GStreamer(libgstapplemedia_a-avfassetsrc.m.o)
"_AVLinearPCMIsBigEndianKey", referenced from:
-[GstAVFAssetReader capsToAudioSettings] in GStreamer(libgstapplemedia_a-avfassetsrc.m.o)
"_AVLinearPCMIsFloatKey", referenced from:
-[GstAVFAssetReader capsToAudioSettings] in GStreamer(libgstapplemedia_a-avfassetsrc.m.o)
"_AVLinearPCMIsNonInterleaved", referenced from:
-[GstAVFAssetReader capsToAudioSettings] in GStreamer(libgstapplemedia_a-avfassetsrc.m.o)
"_AVMediaTypeAudio", referenced from:
-[GstAVFAssetReader initReader:] in GStreamer(libgstapplemedia_a-avfassetsrc.m.o)
-[GstAVFAssetReader selectTrack::] in GStreamer(libgstapplemedia_a-avfassetsrc.m.o)
"_AVMediaTypeVideo", referenced from:
-[GstAVFAssetReader initReader:] in GStreamer(libgstapplemedia_a-avfassetsrc.m.o)
-[GstAVFAssetReader selectTrack::] in GStreamer(libgstapplemedia_a-avfassetsrc.m.o)
_gst_avf_device_provider_probe in GStreamer(libgstapplemedia_a-avfdeviceprovider.m.o)
-[GstAVFVideoSrcImpl openDeviceInput] in GStreamer(libgstapplemedia_a-avfvideosrc.m.o)
"_AVNumberOfChannelsKey", referenced from:
-[GstAVFAssetReader capsToAudioSettings] in GStreamer(libgstapplemedia_a-avfassetsrc.m.o)
"_AVSampleRateKey", referenced from:
-[GstAVFAssetReader capsToAudioSettings] in GStreamer(libgstapplemedia_a-avfassetsrc.m.o)
"_AudioComponentFindNext", referenced from:
_gst_core_audio_open_device in GStreamer(libgstosxaudio_a-gstosxcoreaudiocommon.c.o)
"_AudioComponentInstanceDispose", referenced from:
_OUTLINED_FUNCTION_6 in GStreamer(libgstosxaudio_a-gstosxcoreaudiocommon.c.o)
_gst_core_audio_close in GStreamer(libgstosxaudio_a-gstosxcoreaudio.c.o)
"_AudioComponentInstanceNew", referenced from:
_gst_core_audio_open_device in GStreamer(libgstosxaudio_a-gstosxcoreaudiocommon.c.o)
"_AudioConverterDispose", referenced from:
_gst_atenc_stop in GStreamer(libgstosxaudio_a-gstatenc.c.o)
_gst_atenc_set_format in GStreamer(libgstosxaudio_a-gstatenc.c.o)
"_AudioConverterFillComplexBuffer", referenced from:
_gst_atenc_handle_frame in GStreamer(libgstosxaudio_a-gstatenc.c.o)
"_AudioConverterGetProperty", referenced from:
_gst_atenc_set_format in GStreamer(libgstosxaudio_a-gstatenc.c.o)
"_AudioConverterGetPropertyInfo", referenced from:
_gst_atenc_set_format in GStreamer(libgstosxaudio_a-gstatenc.c.o)
"_AudioConverterNew", referenced from:
_gst_atenc_set_format in GStreamer(libgstosxaudio_a-gstatenc.c.o)
"_AudioConverterReset", referenced from:
_gst_atenc_flush in GStreamer(libgstosxaudio_a-gstatenc.c.o)
"_AudioConverterSetProperty", referenced from:
_gst_atenc_set_format in GStreamer(libgstosxaudio_a-gstatenc.c.o)
_OUTLINED_FUNCTION_8 in GStreamer(libgstosxaudio_a-gstatenc.c.o)
"_AudioOutputUnitStart", referenced from:
_gst_core_audio_io_proc_start in GStreamer(libgstosxaudio_a-gstosxcoreaudiocommon.c.o)
"_AudioOutputUnitStop", referenced from:
_gst_core_audio_io_proc_stop in GStreamer(libgstosxaudio_a-gstosxcoreaudiocommon.c.o)
"_AudioQueueAllocateBuffer", referenced from:
_gst_atdec_set_format in GStreamer(libgstosxaudio_a-gstatdec.c.o)
_gst_atdec_handle_frame in GStreamer(libgstosxaudio_a-gstatdec.c.o)
_gst_atdec_offline_render in GStreamer(libgstosxaudio_a-gstatdec.c.o)
"_AudioQueueDispose", referenced from:
_gst_atdec_destroy_queue in GStreamer(libgstosxaudio_a-gstatdec.c.o)
"_AudioQueueEnqueueBuffer", referenced from:
_gst_atdec_handle_frame in GStreamer(libgstosxaudio_a-gstatdec.c.o)
"_AudioQueueFlush", referenced from:
_gst_atdec_handle_frame in GStreamer(libgstosxaudio_a-gstatdec.c.o)
"_AudioQueueFreeBuffer", referenced from:
_gst_atdec_set_format in GStreamer(libgstosxaudio_a-gstatdec.c.o)
_gst_atdec_buffer_emptied in GStreamer(libgstosxaudio_a-gstatdec.c.o)
_OUTLINED_FUNCTION_14 in GStreamer(libgstosxaudio_a-gstatdec.c.o)
"_AudioQueueNewOutput", referenced from:
_gst_atdec_set_format in GStreamer(libgstosxaudio_a-gstatdec.c.o)
"_AudioQueueOfflineRender", referenced from:
_gst_atdec_set_format in GStreamer(libgstosxaudio_a-gstatdec.c.o)
_gst_atdec_offline_render in GStreamer(libgstosxaudio_a-gstatdec.c.o)
"_AudioQueueReset", referenced from:
_gst_atdec_flush in GStreamer(libgstosxaudio_a-gstatdec.c.o)
"_AudioQueueSetOfflineRenderFormat", referenced from:
_gst_atdec_set_format in GStreamer(libgstosxaudio_a-gstatdec.c.o)
"_AudioQueueStart", referenced from:
_gst_atdec_set_format in GStreamer(libgstosxaudio_a-gstatdec.c.o)
"_AudioQueueStop", referenced from:
_gst_atdec_destroy_queue in GStreamer(libgstosxaudio_a-gstatdec.c.o)
"_AudioUnitAddPropertyListener", referenced from:
_gst_core_audio_open in GStreamer(libgstosxaudio_a-gstosxcoreaudio.c.o)
"_AudioUnitAddRenderNotify", referenced from:
_gst_core_audio_io_proc_start in GStreamer(libgstosxaudio_a-gstosxcoreaudiocommon.c.o)
"_AudioUnitGetProperty", referenced from:
_gst_core_audio_get_samples_and_latency in GStreamer(libgstosxaudio_a-gstosxcoreaudio.c.o)
__core_audio_get_property in GStreamer(libgstosxaudio_a-gstosxcoreaudio.c.o)
"_AudioUnitInitialize", referenced from:
_gst_core_audio_open in GStreamer(libgstosxaudio_a-gstosxcoreaudio.c.o)
_gst_core_audio_initialize in GStreamer(libgstosxaudio_a-gstosxcoreaudio.c.o)
"_AudioUnitRemovePropertyListenerWithUserData", referenced from:
_OUTLINED_FUNCTION_8 in GStreamer(libgstosxaudio_a-gstosxcoreaudio.c.o)
"_AudioUnitRemoveRenderNotify", referenced from:
_gst_core_audio_remove_render_callback in GStreamer(libgstosxaudio_a-gstosxcoreaudiocommon.c.o)
"_AudioUnitRender", referenced from:
_gst_osx_audio_src_io_proc in GStreamer(libgstosxaudio_a-gstosxaudiosrc.c.o)
"_AudioUnitSetParameter", referenced from:
_gst_core_audio_set_volume in GStreamer(libgstosxaudio_a-gstosxcoreaudio.c.o)
"_AudioUnitSetProperty", referenced from:
__core_audio_set_property in GStreamer(libgstosxaudio_a-gstosxcoreaudiocommon.c.o)
_gst_core_audio_open_device in GStreamer(libgstosxaudio_a-gstosxcoreaudiocommon.c.o)
_OUTLINED_FUNCTION_3 in GStreamer(libgstosxaudio_a-gstosxcoreaudiocommon.c.o)
_OUTLINED_FUNCTION_5 in GStreamer(libgstosxaudio_a-gstosxcoreaudiocommon.c.o)
"_AudioUnitUninitialize", referenced from:
_gst_core_audio_close in GStreamer(libgstosxaudio_a-gstosxcoreaudio.c.o)
_gst_core_audio_initialize in GStreamer(libgstosxaudio_a-gstosxcoreaudio.c.o)
"_CMBlockBufferAppendMemoryBlock", referenced from:
_gst_vtdec_handle_frame in GStreamer(libgstapplemedia_a-vtdec.c.o)
"_CMBlockBufferCreateEmpty", referenced from:
_gst_vtdec_handle_frame in GStreamer(libgstapplemedia_a-vtdec.c.o)
"_CMBlockBufferGetDataPointer", referenced from:
_gst_core_media_buffer_priv_new in GStreamer(libgstapplemedia_a-coremediabuffer.c.o)
"_CMClockGetTime", referenced from:
-[GstAVFVideoSrcImpl getSampleBuffer:timestamp:duration:] in GStreamer(libgstapplemedia_a-avfvideosrc.m.o)
"_CMFormatDescriptionGetExtension", referenced from:
_gst_vtenc_output_loop in GStreamer(libgstapplemedia_a-vtenc.c.o)
"_CMSampleBufferCreate", referenced from:
_gst_vtdec_handle_frame in GStreamer(libgstapplemedia_a-vtdec.c.o)
"_CMSampleBufferCreateForImageBuffer", referenced from:
____request_data_block_invoke in GStreamer(libgstapplemedia_a-avsamplevideosink.m.o)
"_CMSampleBufferGetDataBuffer", referenced from:
_gst_core_media_buffer_priv_new in GStreamer(libgstapplemedia_a-coremediabuffer.c.o)
"_CMSampleBufferGetDuration", referenced from:
-[GstAVFAssetReader nextBuffer::] in GStreamer(libgstapplemedia_a-avfassetsrc.m.o)
"_CMSampleBufferGetFormatDescription", referenced from:
_gst_vtenc_output_loop in GStreamer(libgstapplemedia_a-vtenc.c.o)
"_CMSampleBufferGetImageBuffer", referenced from:
-[GstAVFVideoSrcImpl create:] in GStreamer(libgstapplemedia_a-avfvideosrc.m.o)
_gst_core_media_buffer_priv_new in GStreamer(libgstapplemedia_a-coremediabuffer.c.o)
"_CMSampleBufferGetOutputDecodeTimeStamp", referenced from:
_gst_vtenc_enqueue_buffer in GStreamer(libgstapplemedia_a-vtenc.c.o)
"_CMSampleBufferGetOutputPresentationTimeStamp", referenced from:
_gst_vtenc_enqueue_buffer in GStreamer(libgstapplemedia_a-vtenc.c.o)
"_CMSampleBufferGetOutputSampleTimingInfoArray", referenced from:
-[GstAVFVideoSrcImpl getSampleBuffer:timestamp:duration:] in GStreamer(libgstapplemedia_a-avfvideosrc.m.o)
"_CMSampleBufferGetPresentationTimeStamp", referenced from:
-[GstAVFAssetReader nextBuffer::] in GStreamer(libgstapplemedia_a-avfassetsrc.m.o)
"_CMSampleBufferGetSampleAttachmentsArray", referenced from:
____request_data_block_invoke in GStreamer(libgstapplemedia_a-avsamplevideosink.m.o)
_gst_vtenc_enqueue_buffer in GStreamer(libgstapplemedia_a-vtenc.c.o)
"_CMTimeCompare", referenced from:
_gst_av_capture_device_get_caps in GStreamer(libgstapplemedia_a-avfvideosrc.m.o)
-[GstAVFVideoSrcImpl setDeviceCaps:] in GStreamer(libgstapplemedia_a-avfvideosrc.m.o)
"_CMTimeMake", referenced from:
_OUTLINED_FUNCTION_11 in GStreamer(libgstapplemedia_a-avsamplevideosink.m.o)
-[GstAVFAssetReader seekTo:::] in GStreamer(libgstapplemedia_a-avfassetsrc.m.o)
-[GstAVFVideoSrcImpl setDeviceCaps:] in GStreamer(libgstapplemedia_a-avfvideosrc.m.o)
_OUTLINED_FUNCTION_5 in GStreamer(libgstapplemedia_a-vtdec.c.o)
_OUTLINED_FUNCTION_42 in GStreamer(libgstapplemedia_a-vtenc.c.o)
"_CMTimeRangeMake", referenced from:
-[GstAVFAssetReader initReader:] in GStreamer(libgstapplemedia_a-avfassetsrc.m.o)
-[GstAVFAssetReader seekTo:::] in GStreamer(libgstapplemedia_a-avfassetsrc.m.o)
"_CMVideoFormatDescriptionCreate", referenced from:
_gst_vtdec_set_format in GStreamer(libgstapplemedia_a-vtdec.c.o)
"_CMVideoFormatDescriptionCreateForImageBuffer", referenced from:
____request_data_block_invoke in GStreamer(libgstapplemedia_a-avsamplevideosink.m.o)
"_CMVideoFormatDescriptionGetDimensions", referenced from:
_gst_av_capture_device_get_caps in GStreamer(libgstapplemedia_a-avfvideosrc.m.o)
-[GstAVFVideoSrcImpl setDeviceCaps:] in GStreamer(libgstapplemedia_a-avfvideosrc.m.o)
"_OBJC_CLASS_$_AVAsset", referenced from:
objc-class-ref in GStreamer(libgstapplemedia_a-avfassetsrc.m.o)
"_OBJC_CLASS_$_AVAssetReader", referenced from:
objc-class-ref in GStreamer(libgstapplemedia_a-avfassetsrc.m.o)
"_OBJC_CLASS_$_AVAssetReaderTrackOutput", referenced from:
objc-class-ref in GStreamer(libgstapplemedia_a-avfassetsrc.m.o)
"_OBJC_CLASS_$_AVCaptureDevice", referenced from:
objc-class-ref in GStreamer(libgstapplemedia_a-avfdeviceprovider.m.o)
objc-class-ref in GStreamer(libgstapplemedia_a-avfvideosrc.m.o)
"_OBJC_CLASS_$_AVCaptureDeviceInput", referenced from:
objc-class-ref in GStreamer(libgstapplemedia_a-avfvideosrc.m.o)
"_OBJC_CLASS_$_AVCaptureSession", referenced from:
objc-class-ref in GStreamer(libgstapplemedia_a-avfvideosrc.m.o)
"_OBJC_CLASS_$_AVCaptureVideoDataOutput", referenced from:
objc-class-ref in GStreamer(libgstapplemedia_a-avfdeviceprovider.m.o)
objc-class-ref in GStreamer(libgstapplemedia_a-avfvideosrc.m.o)
"_OBJC_CLASS_$_AVSampleBufferDisplayLayer", referenced from:
objc-class-ref in GStreamer(libgstapplemedia_a-avsamplevideosink.m.o)
"_VTCompressionSessionCompleteFrames", referenced from:
_gst_vtenc_handle_frame in GStreamer(libgstapplemedia_a-vtenc.c.o)
_gst_vtenc_finish_encoding in GStreamer(libgstapplemedia_a-vtenc.c.o)
"_VTCompressionSessionCreate", referenced from:
_gst_vtenc_create_session in GStreamer(libgstapplemedia_a-vtenc.c.o)
"_VTCompressionSessionEncodeFrame", referenced from:
_gst_vtenc_handle_frame in GStreamer(libgstapplemedia_a-vtenc.c.o)
"_VTCompressionSessionInvalidate", referenced from:
_gst_vtenc_destroy_session in GStreamer(libgstapplemedia_a-vtenc.c.o)
"_VTDecompressionSessionCreate", referenced from:
_gst_vtdec_create_session in GStreamer(libgstapplemedia_a-vtdec.c.o)
"_VTDecompressionSessionDecodeFrame", referenced from:
_gst_vtdec_handle_frame in GStreamer(libgstapplemedia_a-vtdec.c.o)
"_VTDecompressionSessionInvalidate", referenced from:
_gst_vtdec_invalidate_session in GStreamer(libgstapplemedia_a-vtdec.c.o)
"_VTDecompressionSessionWaitForAsynchronousFrames", referenced from:
_gst_vtdec_drain_decoder in GStreamer(libgstapplemedia_a-vtdec.c.o)
"_VTSessionCopyProperty", referenced from:
_gst_vtenc_session_dump_property in GStreamer(libgstapplemedia_a-vtenc.c.o)
_OUTLINED_FUNCTION_20 in GStreamer(libgstapplemedia_a-vtenc.c.o)
"_VTSessionCopySupportedPropertyDictionary", referenced from:
_gst_vtenc_create_session in GStreamer(libgstapplemedia_a-vtenc.c.o)
"_VTSessionSetProperty", referenced from:
_gst_vtenc_handle_frame in GStreamer(libgstapplemedia_a-vtenc.c.o)
_gst_vtenc_session_configure_bitrate in GStreamer(libgstapplemedia_a-vtenc.c.o)
_gst_vtenc_create_session in GStreamer(libgstapplemedia_a-vtenc.c.o)
_OUTLINED_FUNCTION_9 in GStreamer(libgstapplemedia_a-vtenc.c.o)
_OUTLINED_FUNCTION_21 in GStreamer(libgstapplemedia_a-vtenc.c.o)
"_iconv", referenced from:
_sub_recode in GStreamer(libass_a-ass.c.o)
_g_iconv in GStreamer(libglib-2_0_a-gconvert.c.o)
_g_convert_with_iconv in GStreamer(libglib-2_0_a-gconvert.c.o)
_g_convert_with_fallback in GStreamer(libglib-2_0_a-gconvert.c.o)
_ass_font_index_magic in GStreamer(libass_a-ass_font.c.o)
_xmlIconvWrapper in GStreamer(libxml2_a-encoding.c.o)
(maybe you meant: _g_iconv, _g_convert_with_iconv , _g_iconv_close , _g_iconv_open )
"_iconv_close", referenced from:
_sub_recode in GStreamer(libass_a-ass.c.o)
_g_iconv_close in GStreamer(libglib-2_0_a-gconvert.c.o)
_OUTLINED_FUNCTION_15 in GStreamer(libglib-2_0_a-gconvert.c.o)
_ass_font_index_magic in GStreamer(libass_a-ass_font.c.o)
_xmlFindExtraHandler in GStreamer(libxml2_a-encoding.c.o)
_xmlCharEncCloseFunc in GStreamer(libxml2_a-encoding.c.o)
(maybe you meant: _g_iconv_close)
"_iconv_open", referenced from:
_sub_recode in GStreamer(libass_a-ass.c.o)
_try_conversion in GStreamer(libglib-2_0_a-gconvert.c.o)
_ass_font_index_magic in GStreamer(libass_a-ass_font.c.o)
_xmlFindExtraHandler in GStreamer(libxml2_a-encoding.c.o)
(maybe you meant: _g_iconv_open)
"_kCMFormatDescriptionExtension_SampleDescriptionExtensionAtoms", referenced from:
_gst_vtenc_output_loop in GStreamer(libgstapplemedia_a-vtenc.c.o)
"_kCMSampleAttachmentKey_DependsOnOthers", referenced from:
_gst_vtenc_enqueue_buffer in GStreamer(libgstapplemedia_a-vtenc.c.o)
"_kCMSampleAttachmentKey_DisplayImmediately", referenced from:
____request_data_block_invoke in GStreamer(libgstapplemedia_a-avsamplevideosink.m.o)
"_kCMTimeInvalid", referenced from:
____request_data_block_invoke in GStreamer(libgstapplemedia_a-avsamplevideosink.m.o)
_gst_vtdec_handle_frame in GStreamer(libgstapplemedia_a-vtdec.c.o)
_gst_vtenc_handle_frame in GStreamer(libgstapplemedia_a-vtenc.c.o)
"_kCMTimePositiveInfinity", referenced from:
-[GstAVFAssetReader seekTo:::] in GStreamer(libgstapplemedia_a-avfassetsrc.m.o)
_gst_vtenc_handle_frame in GStreamer(libgstapplemedia_a-vtenc.c.o)
_gst_vtenc_finish_encoding in GStreamer(libgstapplemedia_a-vtenc.c.o)
"_kCMTimeZero", referenced from:
-[GstAVFAssetReader initReader:] in GStreamer(libgstapplemedia_a-avfassetsrc.m.o)
-[GstAVFAssetReader seekTo:::] in GStreamer(libgstapplemedia_a-avfassetsrc.m.o)
"_kVTCompressionPropertyKey_AllowFrameReordering", referenced from:
_gst_vtenc_session_configure_allow_frame_reordering in GStreamer(libgstapplemedia_a-vtenc.c.o)
"_kVTCompressionPropertyKey_AllowTemporalCompression", referenced from:
_gst_vtenc_create_session in GStreamer(libgstapplemedia_a-vtenc.c.o)
"_kVTCompressionPropertyKey_AverageBitRate", referenced from:
_gst_vtenc_session_configure_bitrate in GStreamer(libgstapplemedia_a-vtenc.c.o)
"_kVTCompressionPropertyKey_ColorPrimaries", referenced from:
_gst_vtenc_create_session in GStreamer(libgstapplemedia_a-vtenc.c.o)
"_kVTCompressionPropertyKey_ConstantBitRate", referenced from:
_gst_vtenc_session_configure_bitrate in GStreamer(libgstapplemedia_a-vtenc.c.o)
"_kVTCompressionPropertyKey_DataRateLimits", referenced from:
_gst_vtenc_session_configure_bitrate in GStreamer(libgstapplemedia_a-vtenc.c.o)
"_kVTCompressionPropertyKey_ExpectedFrameRate", referenced from:
_gst_vtenc_create_session in GStreamer(libgstapplemedia_a-vtenc.c.o)
"_kVTCompressionPropertyKey_FieldCount", referenced from:
_gst_vtenc_create_session in GStreamer(libgstapplemedia_a-vtenc.c.o)
"_kVTCompressionPropertyKey_FieldDetail", referenced from:
_gst_vtenc_handle_frame in GStreamer(libgstapplemedia_a-vtenc.c.o)
_gst_vtenc_create_session in GStreamer(libgstapplemedia_a-vtenc.c.o)
"_kVTCompressionPropertyKey_MaxFrameDelayCount", referenced from:
_gst_vtenc_session_configure_max_frame_delay in GStreamer(libgstapplemedia_a-vtenc.c.o)
"_kVTCompressionPropertyKey_MaxKeyFrameInterval", referenced from:
_gst_vtenc_session_configure_max_keyframe_interval in GStreamer(libgstapplemedia_a-vtenc.c.o)
"_kVTCompressionPropertyKey_MaxKeyFrameIntervalDuration", referenced from:
_gst_vtenc_session_configure_max_keyframe_interval_duration in GStreamer(libgstapplemedia_a-vtenc.c.o)
"_kVTCompressionPropertyKey_NumberOfPendingFrames", referenced from:
_gst_vtenc_handle_frame in GStreamer(libgstapplemedia_a-vtenc.c.o)
_gst_vtenc_output_loop in GStreamer(libgstapplemedia_a-vtenc.c.o)
"_kVTCompressionPropertyKey_ProfileLevel", referenced from:
_gst_vtenc_create_session in GStreamer(libgstapplemedia_a-vtenc.c.o)
"_kVTCompressionPropertyKey_Quality", referenced from:
_gst_vtenc_set_property in GStreamer(libgstapplemedia_a-vtenc.c.o)
_gst_vtenc_create_session in GStreamer(libgstapplemedia_a-vtenc.c.o)
"_kVTCompressionPropertyKey_RealTime", referenced from:
_gst_vtenc_session_configure_realtime in GStreamer(libgstapplemedia_a-vtenc.c.o)
"_kVTCompressionPropertyKey_TransferFunction", referenced from:
_gst_vtenc_create_session in GStreamer(libgstapplemedia_a-vtenc.c.o)
"_kVTCompressionPropertyKey_YCbCrMatrix", referenced from:
_gst_vtenc_create_session in GStreamer(libgstapplemedia_a-vtenc.c.o)
"_kVTEncodeFrameOptionKey_ForceKeyFrame", referenced from:
_gst_vtenc_init in GStreamer(libgstapplemedia_a-vtenc.c.o)
"_res_9_dn_expand", referenced from:
_OUTLINED_FUNCTION_27 in GStreamer(libgio-2_0_a-gthreadedresolver.c.o)
"_res_9_ndestroy", referenced from:
_threaded_resolver_worker_cb in GStreamer(libgio-2_0_a-gthreadedresolver.c.o)
"_res_9_ninit", referenced from:
_threaded_resolver_worker_cb in GStreamer(libgio-2_0_a-gthreadedresolver.c.o)
"_res_9_nquery", referenced from:
_threaded_resolver_worker_cb in GStreamer(libgio-2_0_a-gthreadedresolver.c.o)
"_rust_eh_personality", referenced from:
Dwarf Exception Unwind Info (__eh_frame) in GStreamer(librsvg-2_a-librsvg-2.prelinked.o)
Dwarf Exception Unwind Info (__eh_frame) in GStreamer(librsvg-2_a-librsvg-2.prelinked.o)
Dwarf Exception Unwind Info (__eh_frame) in GStreamer(librsvg-2_a-librsvg-2.prelinked.o)
Dwarf Exception Unwind Info (__eh_frame) in GStreamer(librsvg-2_a-librsvg-2.prelinked.o)
Dwarf Exception Unwind Info (__eh_frame) in GStreamer(librsvg-2_a-librsvg-2.prelinked.o)
Dwarf Exception Unwind Info (__eh_frame) in GStreamer(librsvg-2_a-librsvg-2.prelinked.o)
Dwarf Exception Unwind Info (__eh_frame) in GStreamer(librsvg-2_a-librsvg-2.prelinked.o)
...
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.
First of all, I don't know if we have a baseline iOS which we want to support -- I think we should begin by setting that up as we do e.g. with WINVER.
Most of the errors can be fixed by building the relevant Obj-C sources with the -fmodules
flag, letting the compiler inject the framework flags as appropriate. This can fix all but -lresolv
for GThreadedResolver, and -liconv
for libass et al.
There is one which cannot be fixed by hand, so I guess I broke it when prelinking librsvg:
Undefined symbols for architecture arm64:
"_rust_eh_personality", referenced from:
Dwarf Exception Unwind Info (__eh_frame) in GStreamer(librsvg-2_a-librsvg-2.prelinked.o)
Dwarf Exception Unwind Info (__eh_frame) in GStreamer(librsvg-2_a-librsvg-2.prelinked.o)
Dwarf Exception Unwind Info (__eh_frame) in GStreamer(librsvg-2_a-librsvg-2.prelinked.o)
Dwarf Exception Unwind Info (__eh_frame) in GStreamer(librsvg-2_a-librsvg-2.prelinked.o)
Dwarf Exception Unwind Info (__eh_frame) in GStreamer(librsvg-2_a-librsvg-2.prelinked.o)
Dwarf Exception Unwind Info (__eh_frame) in GStreamer(librsvg-2_a-librsvg-2.prelinked.o)
Dwarf Exception Unwind Info (__eh_frame) in GStreamer(librsvg-2_a-librsvg-2.prelinked.o)
...
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.
Expected Behavior
Linking should automatically succeed (barring the missing symbols, which will be the subject of another issue).
Observed Behavior
I have to play matchmaker between missing functions and CMake, finding which framework exports it.
Setup
- Operating System: macOS 12.7.6 against iPhoneOS 16.2.sdk
- Device: Mobile **
- GStreamer Version: 1.25.0.1
- Command line: N/A
Steps to reproduce the bug
- open terminal
- clone my branch: https://gitlab.freedesktop.org/amyspark/gstreamer/-/blob/port-ios-examples
- navigate to subprojects/gst-examples/playback/player/ios/GstPlay/
- issue
cmake .. -GNinja -DCMAKE_FRAMEWORK_PATH=<path to GStreamer.framework's install folder> -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_ARCHITECTURES=arm64
How reproducible is the bug?
Always
Screenshots if relevant
Solutions you have tried
- Finding all frameworks by hand