之前在Win10下成功编译nginx给了我不少信心,这两天尝试在Win10下编译FFMPEG,没想到给捣鼓成功了,记录一下。
首先下载MINGW,这个文章最后放我打包好的下载地址,直接将压缩包解压到C盘根目录下即可,即安装目录为C:\MinGW
里面已经包含了编译FFMPEG所需要的工具。
解压好后进到目录C:\MinGW\msys\1.0下,对msys.bat文件进行编辑
第二行路径修改为你安装的VS2017路径。
FFMPEG工程可以从我的GIT上下载https://gitee.com/main.c/ffmpeg-3.4.2
里面的Makefile即目录经过了简单修改,去掉了ftools即doc,test等的编译。
直接双击运行msys.bat,进入ffmpeg工程目录下,然后进行项目配置,这里贴下我的配置:
静态库:
./configure --target-os=win32 --disable-debug --enable-static --prefix=./vs2017_build_static --toolchain=msvc --disable-encoders --disable-ffserver --disable-ffplay --disable-avdevice --disable-avfilter --disable-postproc
动态库:
./configure --target-os=win32 --disable-debug --disable-static --enable-shared --prefix=./vs2017_build --toolchain=msvc --disable-encoders --disable-ffserver --disable-ffplay --disable-avdevice --disable-avfilter --disable-postproc
--target-os:目标为Window平台,自然选择win32
--disable-debug:禁用了调试信息
--prefix:这是执行make install后库文件所存放目录
--toolchain:编译器选择,使用VS2017的msvc
--disable-encoders:禁用编码器,因为我只使用解码功能
--disable-ffserver:禁用服务器
--disable-ffplay:禁止生成ffplay测试程序,我给删掉了已经
--disable-avdevice:之后几个disable都是我用不到的库,都禁用了
根据情况执行configure之后会在项目根目录下生成config.h文件,这个文件虽然说不建议编辑,但是要进行一次编辑的,打包保存为utf-8编码,默认是GBK编码,编译会不断弹出编码警告,如果不嫌烦可以不管;
好了,接下来直接make就OK了,正常情况下是不会有问题的;
make完之后执行make install将库文件以及头文件复制到之前配置的存放目录里后就OK了。
接下来讲讲怎么用VS2017去调用静态库,动态库就是生成的dll以及lib文件,没啥好说的,静态库这里生成的是.a文件,乍一看有点晕,因为.a静态库是LINUX下的库文件,在Windows上VS中能用吗?可放心使用,因为使用的是msvc编译的,就像.lib静态库一样使用即可,下面看下我的项目中调用的静态库配置:
好了,就讲这些了,工具包下载地址,一个包总是上传失败,CSDN的BUG不少啊。。。
https://download.csdn.net/download/xinxinsky/10338448
https://download.csdn.net/download/xinxinsky/10338461