在Eclipse IDE for C/C++上使用MinGW编译ffplay.c

在Eclipse IDE for C/C++上使用MinGW编译ffplay.c

一、准备条件
1、eclipse C++和Mingw环境配置略(不明白自行百度)
2、下载sdl2
http://www.libsdl.org/release/SDL2-devel-2.0.8-mingw.tar.gz
3、下载ffmpeg源码(当前使用的是ffmpeg3.2.4),以及
ffmpeg-3.2.4-win32-dev.zip以及ffmpeg-3.2.4-win32-shared.zip,打包好的资源地址:ffmpeg3.2.4.zip
二、开始配置
1、在eclipseC++中新建C项目(非C++)如下图,然后点击完成
在Eclipse IDE for C/C++上使用MinGW编译ffplay.c
2、准备SDL2头文件和依赖库,如下图在项目根目录下新建目录SDL2,从SDL2-devel-2.0.8-mingw.tar.gz中解压出i686-w64-mingw32(采用32位)目录,从中提取include和lib目录下文件到SDL2目录下,提取bin/SDL2.dll 到Debug目录下。
在Eclipse IDE for C/C++上使用MinGW编译ffplay.c
3、准备ffmpeg头文件和依赖库,如下图在项目根目录下新建目录ffmpeg,从ffmpeg-3.2.4-win32-dev.zip中提取include目录下的文件和lib/*.dll.a到ffmpeg目录,从ffmpeg-3.2.4-win32-shared.zip提取bin/*.dll文件到Debug目录下。
在Eclipse IDE for C/C++上使用MinGW编译ffplay.c
4、准备ffplay.c所需的源文件,从ffmpeg源码压缩包ffmpeg-3.2.4.tar.bz2中提取下图目录src下的所有文件到src目录(config.h在附件中给出)。
在Eclipse IDE for C/C++上使用MinGW编译ffplay.c

5、配置头文件和依赖库,依次点击项目Properties -> C/C++ General -> Paths and Symbols
(1)、如下图选中Includes下GNU C,点击添加SDL2头文件搜索路径SDL2/include/SDL2勾选add to all configurations.同样的添加ffmpeg头文件搜索路径ffmpeg/include
在Eclipse IDE for C/C++上使用MinGW编译ffplay.c
(2)、如下图选中Library Paths,同(1),添加sdl2和ffmpeg依赖库搜索路径SDL2/lib、ffmpeg/lib
在Eclipse IDE for C/C++上使用MinGW编译ffplay.c
(3)、如下图选中Libraries,同(1),添加具体的依赖项:SDL2main、SDL2.dll、SDL2、avcodec.dll、avdevice.dll、avfilter.dll、avformat.dll、avutil.dll、postproc.dll、swresample.dll、swscale.dll (注意下顺序)
在Eclipse IDE for C/C++上使用MinGW编译ffplay.c
(4)、如下图选中Symbols,同(1)添加宏_WIN32_WINNT,值为0x0502,最终点击Apply
在Eclipse IDE for C/C++上使用MinGW编译ffplay.c
6、点击build项目即可生成ffplay.exe,运行时,可能会出现”WASAPI can’t initialize audio client…”的错误,在控制台设置set SDL_AUDIODRIVER=directsound环境变量,然后在运行ffplay.exe

7、编译时会出现头文件无法找到错误,解决办法:cmdutils.c文件里33行#include "compat/va_copy.h"改为#include “va_copy.h”;avresample.h文件里102行#include "libavresample/version.h"该为#include “version.h”

8、完整的项目Demo,里面包含config.h头文件