При запуске двоичного файла я получаю следующую ошибку:
dyld: Library not loaded: /Library/Frameworks/GStreamer.framework/Versions/1.0/lib/libgstsdp-1.0.0.dylib
Referenced from: /Users/hiphipjorge/Downloads/gstwebrtc-demos-master/sendrecv/gst/./webrtc-sendrecv
Reason: Incompatible library version: webrtc-sendrecv requires version 1603.0.0 or later, but libgstsdp-1.0.0.dylib provides version 205.0.0
Abort trap: 6
Когда я запускаю otool
, я могу подтвердить, что 205.0.0
- это версия, которую я ожидал иметь.
$ otool -L /Library/Frameworks/GStreamer.framework/Versions/1.0/lib/libgstsdp-1.0.0.dylib
/Library/Frameworks/GStreamer.framework/Versions/1.0/lib/libgstsdp-1.0.0.dylib:
/Library/Frameworks/GStreamer.framework/Versions/1.0/lib/libgstsdp-1.0.0.dylib (compatibility version 205.0.0, current version 205.0.0)
/Library/Frameworks/GStreamer.framework/Versions/1.0/lib/libgstreamer-1.0.0.dylib (compatibility version 205.0.0, current version 205.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
/Library/Frameworks/GStreamer.framework/Versions/1.0/lib/libgio-2.0.0.dylib (compatibility version 3801.0.0, current version 3801.2.0)
/Library/Frameworks/GStreamer.framework/Versions/1.0/lib/libgmodule-2.0.0.dylib (compatibility version 3801.0.0, current version 3801.2.0)
/Library/Frameworks/GStreamer.framework/Versions/1.0/lib/libz.1.2.8.dylib (compatibility version 1.0.0, current version 1.2.8)
/usr/lib/libresolv.9.dylib (compatibility version 1.0.0, current version 1.0.0)
/Library/Frameworks/GStreamer.framework/Versions/1.0/lib/libgobject-2.0.0.dylib (compatibility version 3801.0.0, current version 3801.2.0)
/Library/Frameworks/GStreamer.framework/Versions/1.0/lib/libffi.6.dylib (compatibility version 7.0.0, current version 7.1.0)
/Library/Frameworks/GStreamer.framework/Versions/1.0/lib/libglib-2.0.0.dylib (compatibility version 3801.0.0, current version 3801.2.0)
/Library/Frameworks/GStreamer.framework/Versions/1.0/lib/libintl.8.dylib (compatibility version 10.0.0, current version 10.2.0)
/Library/Frameworks/GStreamer.framework/Versions/1.0/lib/libiconv.2.dylib (compatibility version 8.0.0, current version 8.1.0)
Но я не совсем понимаю, откуда взялась необходимая версия 1603.0.0
в двоичном файле. Как я могу это выяснить?
Двоичный файл был скомпилирован с использованием следующего Makefile
:
CC := gcc
LIBS := $(shell pkg-config --libs --cflags glib-2.0 gstreamer-1.0 gstreamer-sdp-1.0 gstreamer-webrtc-1.0 json-glib-1.0 libsoup-2.4)
CFLAGS := -O0 -ggdb -Wall -fno-omit-frame-pointer \
$(shell pkg-config --cflags glib-2.0 gstreamer-1.0 gstreamer-sdp-1.0 gstreamer-webrtc-1.0 json-glib-1.0 libsoup-2.4)
webrtc-sendrecv: webrtc-sendrecv.c
"$(CC)" $(CFLAGS) $^ $(LIBS) -o $@