Добавление ffmpeg в проект clion - PullRequest
0 голосов
/ 04 июня 2018

Я бы хотел добавить ffmpeg в Clion, но у меня есть некоторые проблемы с ним.Мой MakeLists.txt выглядит примерно так:

cmake_minimum_required(VERSION 3.10)
project(ffmpeg)

set(CMAKE_CXX_STANDARD 11)

include_directories(libs/ffmpeg/)
include_directories(libs/ffmpeg/include/libavutil/)
include_directories(libs/ffmpeg/include/libaccodec/)
include_directories(libs/ffmpeg/include/libavdevice/)
include_directories(libs/ffmpeg/include/libavfilter/)
include_directories(libs/ffmpeg/include/libavformat/)

include_directories(libs/ffmpeg/include/)
link_directories(libs/ffmpeg/lib/)

set(SOURCE_FILES main.cpp)


add_executable(ffmpeg main.cpp)

target_link_libraries(
        ffmpeg
        avcodec
        avdevice
        avfilter
        avformat
        avresample
        avutil
        postproc
        swresample
        swscale
)

Я не уверен, правильно ли я добавил библиотеки и включил их, потому что в моем простом main.cpp он не может разрешить avcodec_configuration ().Макет моего проекта выглядит следующим образом:

  ffmpeg
    -libs
      -include
        -libavcodec
        .
        .
        .
      -lib
        -avcodec.lib
    -main.cpp

РЕДАКТИРОВАТЬ: теперь все включения найдены компилятором.Но если я скомпилирую, я получаю следующую ошибку:

c:/mingw/bin/../lib/gcc/mingw32/6.3.0/../../../../mingw32/bin/ld.exe: cannot find -lavresample
collect2.exe: error: ld returned 1 exit status
mingw32-make.exe[2]: *** [ffmpeg.exe] Error 1
mingw32-make.exe[1]: *** [CMakeFiles/ffmpeg.dir/all] Error 2
mingw32-make.exe: *** [all] Error 2
CMakeFiles\ffmpeg.dir\build.make:96: recipe for target 'ffmpeg.exe' failed
CMakeFiles\Makefile2:66: recipe for target 'CMakeFiles/ffmpeg.dir/all' failed
Makefile:82: recipe for target 'all' failed

1 Ответ

0 голосов
/ 28 мая 2019

Я не рекомендую жестко кодировать пути к заголовкам / библиотекам в вашем CMakeLists.txt;это не переносимо.

  • Поиск готового FindFFmpeg.cmake (может быть этот будет работать?),
  • добавьте его в каталог вашего проекта (например,в подкаталог cmake/),
  • и подключите его к CMAKE_MODULE_PATH .Например, list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake").
  • Затем обратитесь к ${FFMPEG_LIBRARIES}, ${FFMPEG_INCLUDE_DIRS} и ${FFMPEG_DEFINITIONS}.

Иногда приходится исправлять модули FindXXX.cmake.

...