я так и не нашёл ответа.
не могу на Linux собрать проект с использованием ffmpeg.
скачала отсюда shared библиотеки ссылка положил их рядом с иcходниками.
структура проекта такая:
<root folder>
ffmpeg/
├ include/
├ lib-linux/
├ lib-win/
src
├ CMakeLists.txt
├ main.cpp
я хочу сделать линковку к библиотекам именно из локальной папки а не в системе искать и ставить avcodec-dev avformat-dev и т.д.
Может кто помочь разобраться с этим ?
Там всё весьма непросто, у ffmpeg очень много зависимостей... Собрать его как-то кастомно будет непросто
мне не ffmpeg собрать надо. а приложение своё. с использованием библиотек ffmpeg
разве? это же shared версии
На винде всё проще, тебе надо указывать только непосредственные зависимости (о проблемах с опосредованными ты узнаешь только в рантайме) На линуксе надо указывать все косвенные зависимости, зависимости зависимостей и так далее.
если посмотреть на что у него зависимости, то вроде все зависимости на месте: ilya@local:~/testffmpeg$ ldd ./ffmpeg/lib-linux-x64/libavcodec.so linux-vdso.so.1 (0x00007fffabbd0000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fec3880b000) libswresample.so.3 => /lib/x86_64-linux-gnu/libswresample.so.3 (0x00007fec387e9000) libavutil.so.56 => /lib/x86_64-linux-gnu/libavutil.so.56 (0x00007fec386c0000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fec3869d000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fec38697000) librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fec3868d000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fec38499000) /lib64/ld-linux-x86-64.so.2 (0x00007fec3c056000) libsoxr.so.0 => /lib/x86_64-linux-gnu/libsoxr.so.0 (0x00007fec3842e000) libva-drm.so.2 => /lib/x86_64-linux-gnu/libva-drm.so.2 (0x00007fec38429000) libva.so.2 => /lib/x86_64-linux-gnu/libva.so.2 (0x00007fec38400000) libva-x11.so.2 => /lib/x86_64-linux-gnu/libva-x11.so.2 (0x00007fec383f8000) libvdpau.so.1 => /lib/x86_64-linux-gnu/libvdpau.so.1 (0x00007fec383f2000) libX11.so.6 => /lib/x86_64-linux-gnu/libX11.so.6 (0x00007fec382b3000) libdrm.so.2 => /lib/x86_64-linux-gnu/libdrm.so.2 (0x00007fec3829d000) libOpenCL.so.1 => /lib/x86_64-linux-gnu/libOpenCL.so.1 (0x00007fec38092000) libgomp.so.1 => /lib/x86_64-linux-gnu/libgomp.so.1 (0x00007fec38050000) libXext.so.6 => /lib/x86_64-linux-gnu/libXext.so.6 (0x00007fec3803b000) libXfixes.so.3 => /lib/x86_64-linux-gnu/libXfixes.so.3 (0x00007fec38031000) libxcb.so.1 => /lib/x86_64-linux-gnu/libxcb.so.1 (0x00007fec38007000) libXau.so.6 => /lib/x86_64-linux-gnu/libXau.so.6 (0x00007fec38001000) libXdmcp.so.6 => /lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007fec37ff9000) libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007fec37fdf000)
конкретная проблема в чём?
не могу cmakelist написать чтобы на линуксе он собирался и использовал именно локальные библиотеки а не системные
https://t.me/probuildsystems
Такое тебе надо? add_library(COMBINED_SHADERC STATIC IMPORTED) set_target_properties(COMBINED_SHADERC PROPERTIES IMPORTED_LOCATION_DEBUG $ENV{VULKAN_SDK}/Lib/libshaderc_combined.a) target_link_libraries(compiler COMBINED_SHADERC)
Обсуждают сегодня