ffmpeg编译报错undefined reference

问题描述

ffmpeg编译报错undefined reference to `avformat_version'

使用ffmpeg官网下载的ffmpeg-4.0.2-win64-dev写了一段测试的代码,
但编译不通过

/**
 * test.c
 */
#include <stdio.h>

#include "libavcodec/avcodec.h"
#include "libavformat/avformat.h"
#include "libswscale/swscale.h"
#include "libavdevice/avdevice.h"

int main()
{
    printf("%d", avformat_version());
    return 0;
}

这是编译的命令
gcc test.c -I include -L lib -lavdevice -lavformat -lavfilter -lavcodec -lswresample -lswscale -lavutil -lm

系统是64位win10
ffmpeg是从官网下的最新版本
系统之前没有装过其他版本的ffmpeg
从ffmpeg-4.0.2-win64-dev.zip解压出来的include和lib这两个文件夹也放到和源码(test.c)同一个目录里了
链接库顺序是参照exmaple里的makefile
因为是用gcc编译的,所以不需要像C++那样添加extern "C"

有没有哪位大神能告诉我,这种情况要如何排错

阅读 4.3k
1 个回答
新手上路,请多包涵

问题在ffmpeg的版本,把ffmpeg的版本由64位换成32位,问题就解决了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏