qt安装FFmpeg后编译遇到error: collect2.exe: error: ld returned 1 exit status错误
安装FFmpeg的过程看这个博客安装FFmpeg
安装完毕后进行测试,我测试的时候出现了以下的错误
:-1: error: collect2.exe: error: ld returned 1 exit status
:-1: error: [Makefile.Debug:72: debug/UDP_TCP_Client.exe] Error 1
我的这个问题是编译器的问题,我用的是mingw编译器,但是上面的博客在.pro添加的依赖是下面的内容
win32: {FFMPEG_HOME=D:\ffmpeg-6.0-full_build-shared#设置 ffmpeg 的头文件INCLUDEPATH += $$FFMPEG_HOME/include#设置导入库的目录一边程序可以找到导入库# -L :指定导入库的目录# -l :指定要导入的 库名称LIBS += -L$$FFMPEG_HOME/lib \-lavcodec \-lavdevice \-lavfilter \-lavformat \-lavutil \-lpostproc \-lswresample \-lswscale
}
我看了下载的FFmpeg的lib文件夹的内容如下图
在mingw的编译器中,添加的依赖是.dll.a的这一部分,在msvc编译器中,添加的是.lib这些,而这些没有postproc这个,所以,自然会找不到依赖。删去就行了
win32: {FFMPEG_HOME = D:/ffmpeg-8.0-full_build-shared/ffmpeg-8.0-full_build-sharedINCLUDEPATH += $$FFMPEG_HOME/include# 对于 MinGW,链接 .dll.a 文件LIBS += -L$$FFMPEG_HOME/lib \-lavdevice \-lavfilter \-lavformat \-lavcodec \-lswresample \-lswscale \-lavutil \
}