【发布时间】:2018-11-18 11:28:50
【问题描述】:
我已经使用 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 ...
我已包含以下库
extern "C" {
#include <libavutil/frame.h>
#include <libavutil/mem.h>
#include <libavcodec/avcodec.h>
}
但是,这仍然行不通。我想我可能遗漏了我的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)
我很可能需要指定额外的链接标志,但有没有更好的方法来处理 CMakeLists.txt 文件中的链接部分?
【问题讨论】:
-
您显然错过了合适的
target_link_libraries()电话。