原来的状况
在.pro文件中已加入静态库和头文件的链接了
win32 {
INCLUDEPATH += $$PWD/ffmpeg-4.2.1-win32-dev/include
LIBS += $$PWD/ffmpeg-4.2.1-win32-dev/lib/avformat.lib \
$$PWD/ffmpeg-4.2.1-win32-dev/lib/avcodec.lib \
$$PWD/ffmpeg-4.2.1-win32-dev/lib/avdevice.lib \
$$PWD/ffmpeg-4.2.1-win32-dev/lib/avfilter.lib \
$$PWD/ffmpeg-4.2.1-win32-dev/lib/avutil.lib \
$$PWD/ffmpeg-4.2.1-win32-dev/lib/postproc.lib \
$$PWD/ffmpeg-4.2.1-win32-dev/lib/swresample.lib \
$$PWD/ffmpeg-4.2.1-win32-dev/lib/swscale.lib
}
在main.c代码中,
#include <stdio.h>
int main()
{
printf("Hello World!\n");
printf("%s \n", av_version_info()); // 这个函数即使不调用,只要出现在代码中也会报错
return 0;
}
#include "libavcodec/avcodec.h"
运行项目报错:
错误原因
使用的动态库和编译器不兼容,在我的电脑上系统路径中配置的动态库使用是64位的,而在这个项目中使用了MinGW32和32位的静态库,我没有在项目中加入32位的动态库
修改后
在Debug目录下加入32位的dll文件
然后就能使用ffmpeg函数了