gpt4 book ai didi

c++ - 如何设置 CMake 查找本地包 FFmpeg?

转载 作者:行者123 更新时间:2023-12-04 23:10:07 27 4
gpt4 key购买 nike

我正在尝试使用 FFmpeg 包编写 CMakeLists,并在 Windows 和 Linux 上编译。
首次从 FFmpeg-Builds 下载共享版本
我想象项目的结构是这样的:

<project root>
deps/
ffmpeg/
win-x64/
incluve/
lib/
bin/
linux-x64/
incluve/
lib/
bin/
src/
CMakeLists.txt
如何帮助 CMake 查找库:avcodec、avformat、avutil 等?
也许在文件夹中 lib/pkgconfig使用 PkgConfig 可以指定路径。
但我不知道如何

最佳答案

以下内容在使用 cmake 的 Linux 上对我来说效果很好。
您必须找到适用于 Windows 的等价物。
我在 Windows 上使用了 ffmpeg,但没有使用 cmake(即直接在 Visual Studio 项目中)。

  • 安装 pkg-config、nasm:
    sudo apt-get install -y pkg-config
    sudo apt-get install nasm
  • 下载ffmpeg源代码:
    https://ffmpeg.org/download.html
  • 构建 ffmpeg 并安装它:
    tar -xvf <downloaded_filename>
    cd /root/folder/with/ffmpeg/src
    ./configure
    make
    sudo make install
  • 将以下内容添加到您的 CMakeLists.txt:
    在一开始的时候:
     find_package(PkgConfig REQUIRED)
    pkg_check_modules(LIBAV REQUIRED IMPORTED_TARGET
    libavdevice
    libavfilter
    libavformat
    libavcodec
    libswresample
    libswscale
    libavutil
    )

    set(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
    在链接器区域:
     target_link_libraries(${PROJECT_NAME} PUBLIC PkgConfig::LIBAV)
  • 关于c++ - 如何设置 CMake 查找本地包 FFmpeg?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71531333/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com