相关疑难解决方法(0)

C++项目中ffmpeg的CMake配置

我已经用 Homebrew 安装了 ffmpeg(版本 4),我正在尝试在 C++ 项目中使用各种 ffmpeg 库,但是在链接过程中出现多个错误。

Undefined symbols for architecture x86_64:
  "_av_free", referenced from:
      _main in main.cpp.o
  "_av_packet_alloc", referenced from:
      _main in main.cpp.o
  "_av_parser_init", referenced from:
And so on ... 
Run Code Online (Sandbox Code Playgroud)

我已将库包括如下

extern "C" {
    #include <libavutil/frame.h>
    #include <libavutil/mem.h>
    #include <libavcodec/avcodec.h>
}
Run Code Online (Sandbox Code Playgroud)

但是,这仍然不起作用。我想我可能错过了我的CMakeLists.txt文件中的某些内容,目前看起来像这样:

cmake_minimum_required(VERSION 2.6)
project(decode_encode)

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_FLAGS "-D__STDC_CONSTANT_MACROS")

add_executable(decode_encode main.cpp)
Run Code Online (Sandbox Code Playgroud)

我很可能需要指定额外的链接标志,但是有没有更好的方法来处理CMakeLists.txt文件中的链接部分?

c++ ffmpeg cmake

7
推荐指数
2
解决办法
1万
查看次数

标签 统计

c++ ×1

cmake ×1

ffmpeg ×1