undefined reference to `avpriv_io_move'
来源:5-4 FFmpeg文件的删除与重命名

在覸青春
2021-09-27
#include <stdio.h>
#include <libavutil/log.h>
#include <libavformat/avformat.h>
int main(int argc,char *argv[])
{
int ret;
ret = avpriv_io_move("111.txt","222.txt");
if(ret<0){
av_log(NULL,AV_LOG_ERROR,"Failed to rename\n");
return -1;
}
av_log(NULL,AV_LOG_INFO,"Success to rename\n");
//delete url
ret = avpriv_io_delete("./flys.txt");
if(ret<0){
av_log(NULL,AV_LOG_ERROR,"Failed to delete file\n");
return -1;
}
av_log(NULL,AV_LOG_INFO,"Success to delete\n");
return 0;
}
查看位置
pkg-config --cflags --libs libavformat libavutil
显示如下:
-I/usr/local/include -L/usr/local/lib -lavformat -lm -lz -lavcodec -pthread -lm -lz -lswresample -lm -lavutil -pthread -lm
开始编译:
gcc -g -o ffmpeg_del ffmpeg_file.c pkg-config --cflags --libs libavformat libavutil
显示错误信息:
ffmpeg_file.c: In function ‘main’:
ffmpeg_file.c:9:8: warning: implicit declaration of function ‘avpriv_io_move’ [-Wimplicit-function-declaration]
9 | ret = avpriv_io_move("111.txt","222.txt");
| ^~~~~~~~~~~~~~
ffmpeg_file.c:17:8: warning: implicit declaration of function ‘avpriv_io_delete’ [-Wimplicit-function-declaration]
17 | ret = avpriv_io_delete("./flys.txt");
| ^~~~~~~~~~~~~~~~
/usr/bin/ld: /tmp/cc5941QN.o: in function `main':
/home/flys/Fly/Test/ffmpeg_file.c:9: undefined reference to `avpriv_io_move'
/usr/bin/ld: /home/flys/Fly/Test/ffmpeg_file.c:17: undefined reference to `avpriv_io_delete'
collect2: error: ld returned 1 exit status
到这一步,实在是不晓得怎么解决了,希望老师解答一下…
写回答
1回答
-
到ffmpeg 源码中搜索这个API,应该是头文件位置变了;要么你就选择和我视频中一样的ffmpeg 版本;另外,实际上这块你可以跳过去,不影响后面内容的学习,等后面对ffmpeg 熟悉点之后再搞这块
012021-09-28
相似问题