undefined reference to `av_frame_get_best_effort_samples' collect2: error: ld returned 1 exit status
时间: 2024-03-28 16:42:32 浏览: 52
ld returned 1 exit status;Makefile‘
这个错误通常是因为链接错误导致的。av_frame_get_best_effort_samples是FFmpeg中的一个函数,需要引用FFmpeg的库才能正确链接。解决这个错误的方法通常有两种:
1. 在编译时链接FFmpeg库
在编译时需要加上FFmpeg的库路径和库名,例如:
```
gcc -o myprogram myprogram.c -lavutil -lavformat -lavcodec -lswscale -lswresample
```
其中,-lavutil、-lavformat、-lavcodec、-lswscale、-lswresample是FFmpeg库的名称,可以根据实际情况进行修改。
2. 在代码中引入FFmpeg头文件
如果已经在代码中引入了FFmpeg头文件,但是仍然无法链接av_frame_get_best_effort_samples函数,可能是因为链接时没有指定正确的库路径或库名。这时可以尝试在代码中添加以下语句:
```
extern "C" {
#include <libavutil/frame.h>
}
```
这段代码会告诉编译器在链接时需要使用libavutil库中的frame.h头文件,从而解决链接错误。
阅读全文