У меня есть разветвленная версия OpenCV (v2.4.8), скомпилированная без FFMPEG как статически связанная библиотека (libopencv_core.a, libopencv_highgui.a и т. Д.) С некоторыми пользовательскими изменениями, я связываю это с моей библиотекой, скажем, libsdk.so.
В настоящее время я создаю примеры приложений на libsdk.so, эти пользовательские приложения используют highgui и ядро OpenCV из (ap-get) менеджера пакетов напрямую (v2.4.9 или v3.3) для открытия камеры и получения кадров из видео.
Мой пример приложения обрабатывает видео, а затем генерирует segfault,
0x0000007fb20ca770 в av_malloc () из /usr/lib/aarch64-linux-gnu/libavutil-ffmpeg.so.54
Я использую CMake для компиляции этих библиотек, я думаю, это может быть связано с тем, что символ не может быть разрешен при вызове деструктора.Есть ли какие-то инструменты, чтобы выяснить, что именно может происходить.Когда я связываю пример приложения с скомпилированным opencv, они работают нормально.Этот подход работает на Linux Ubuntu x86_64, но не на Arm64 (кросс-компиляция)
РЕДАКТИРОВАТЬ: я пишу это, чтобы получить предложения и отзывы о том, что может быть проблема здесь, в настоящее время пример приложения зависает, когда оно пытаетсяосвободить память.Этот пример приложения написан на C ++ 11.