Windows下使用MINGW编译ffplay
之前考虑到需要快速配置编译ffplay,使用了比较暴力的方法,具体可以参考编译ffplay.exe简化版。
这里介绍下相对规范的做法。
前提:已经安装了Windows下GCC开发环境——MINGW+msys。
Step1:下载FFmpeg
链接如下:FFmpeg Download
Step2:下载yasm并配置
可以从下面URL下载:yasm 1.3 release
选择你需要的版本,我的系统是win32的,所以下载“Win32.exe”。
下载完成之后将yasm-1.3.0-win32.exe重命名为yasm.exe,并复制到%MINGW_PATH%/bin目录下。MINGW_PATH是MINGW安装目录。
Step3:下载pkg-config并配置
pkg-config官网上通常找不到windows下可用的版本,建议参考下面介绍配置:pkg-config for mingw 安装及配置
注意配置好环境变量,PKG_CONFIG_PATH(这是pkg-config默认的库依赖项查找目录)。
也可以把pkg-config.exe放到%MINGW_PATH%/bin下。
pkg-config是一个辅助的配置、链接工具,可以方便的支持gcc自动配置。
Step4:下载SDL并配置
可以从SDL v1.2.15下载,选择SDL-devel-1.2.15-mingw32.tar.gz。
后续的配置是把上面压缩包中的include/sdl、lib、bin目录下的文件拷贝到%MINGW_PAH%/include/sdl、%MINGW_PAH%/lib、%MINGW_PAH%/bin。
剩下的可能需要手工添加。在%MINGW_PAH%/lib添加pkgconfig目录。由于SDL v1.2.15不包含sdl.pc文件,需要参考SDL v2.0的版本生成一个或者自己编译一个。内容如下:
# sdl pkg-config source file
prefix=/c/mingw/
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: sdl
Description: Simple DirectMedia Layer is a cross-platform multimedia library designed to provide low level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer.
Version: 1.2.15
Requires:
Conflicts:
Libs: -L${libdir} -lmingw32 -lSDLmain -lSDL -mwindows
Libs.private: -lmingw32 -lSDLmain -lSDL2 -mwindows -Wl,--no-undefined -lm -ldinput8 -ldxguid -ldxerr8 -luser32 -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lshell32 -lversion -luuid -XCClinker -static-libgcc
Cflags: -I${includedir}/SDL -Dmain=SDL_main
Step5:FFmpeg的configure
既然工具都配置好了,剩下的就是开始按照Linux上的软件编译流程,使用下面命令配置FFmpeg
./configure --disable-static --enable-shared --enable-gpl --enable-version3 --enable-pthreads
完成之后检查下SDL是否正常检测到,可以查看FFmpeg编译目录下的config.h文件,找到HAVE_SDL、CONFIG_SDL宏,如果都是1,表示SDL配置成功,可以放心编译出ffplay了。
Step6: FFmpeg编译
这基本上算最后一步编译,耗时相对长一些,通常半个小时以上。
一条编译指令,make
。
小结
Windows下GCC开发环境配置起来相对复杂,有问题通常都是可以解决的。写这篇文章主要考虑自己用了几年的FFmpeg,编译了很多次,也没成功编译出ffplay.exe,这次终于整理清楚FFmpeg编译的过程以及可能存在的问题,值得记录。
Windows下使用MINGW编译ffplay的更多相关文章
- 手把手教你在Windows下使用MinGW编译libav(参考libx264的编入)
转自:http://www.th7.cn/Program/cp/201407/242762.shtml 手把手教你在Windows下使用MinGW编译libav libav是在Linux下使用纯c语言 ...
- Windows下用Mingw编译Boost.Regex库
下载Boost库,解压. 定位到regex库文件夹下. GCC所对应的MAKEFILE为gcc.mak 进入命令提示符下,输入make -f gcc.mak 这是如果直接按回车执行的话,会出现错误: ...
- windows下使用mingw编译出ffplay(简化版)
之前编译FFmpeg直接使用dll.lib,默认的mingw也不会编译出ffplay.exe. 近期由于工作需要,需要验证下修改之后的FFmpeg版本是否正常,需要使用ffplay.exe. 比较暴力 ...
- 在Windows下利用MinGW编译FFmpeg
目录 [隐藏] 1 环境与软件 2 第一步:安装MinGW 3 第二步:配置编译环境 4 第三步:配置SDL 5 第四步:编译 5.1 编译faac 5.2 编译fdk-aac 5.3 编译x264 ...
- 再次尝试windows下msys+MinGW编译ffmpeg
电脑上安装太多的开源库,环境变量里面一些常用的头文件都有几种,以前使用的编译ffmpeg的方法现在常常提示错误.从config.log中看,这些错误往往都是一些头文件引用错误导致.由于项目中继续编译自 ...
- windows下使用mingw编译python扩展模块
环境: 1.python2.7.2 2.mingw20120426 说明: PYTHON_HOME:不做特殊说明的话,默认代表python的安装路径. MINGW_HOME:不做特殊说明的话,默认代表 ...
- windows下用mingw编译linux项目
1.下载安装mingw32 2.将mingw下bin和msys\1.0下bin设置为系统path 3.启动msys.bat 4.cd到项目目录 5.输入./configure 6.输入make 7.输 ...
- 在Windows下使用MinGW静态编译Assimp
使用MinGW静态编译Assimp 到了5月份了,没有写一篇日志,于是自己从知识库里面拿出一篇文章充数吧.这次将要解说怎样在Windows下使用MinGW静态编译Assimp. Assimp是眼下比較 ...
- windows下使用mingw和msvc静态编译Qt5.15.xx
windows下使用mingw和msvc静态编译Qt5.15.xx 下载并安装相关依赖软件 Python version 2.7 https://www.python.org/downloads/ ( ...
随机推荐
- 神奇的 Block
本文不做Block的基本介绍和底层实现原理,有兴趣的同学直接戳这篇文章(http://www.jianshu.com/p/51d04b7639f1),写得灰常好,本文只在应用层面上带领读者进行思考,并 ...
- I/O Completion Ports学习
表示还是自己看MSDN最直接,别人的介绍都是嚼剩下,有木有? IO完成端口为在多处理器系统处理多个异步IO请求提供一个高效的线程模型.当一个进程新建一个完成端口,操作系统新建一个目的为服务这些请求的队 ...
- 信号量 Linux函数 semget();semctl();semop();(转)
本文出自:http://blog.csdn.net/ta893115871/article/details/7505560 Linux进程通信之信号量 信号量(semaphore)是变量,是一种特殊的 ...
- Mac 常用软件推荐
1.常用软件推荐 这里推荐的 apps 在开发者圈子内普遍评价不错,能便利的处理日常的开发和使用的任务.以下推荐分为四类: 开发者工具 生产力工具 办公工具 其他 2.Developer Tools ...
- Nginx https证书部署
1 获取证书 Nginx文件夹内获得SSL证书文件 1_www.domain.com_bundle.crt 和私钥文件 2_www.domain.com.key,1_www.domain.com_bu ...
- C++11 中值得关注的几大变化(详解)
源文章来自前C++标准委员会的 Danny Kalev 的 The Biggest Changes in C++11 (and Why You Should Care),赖勇浩做了一个中文翻译在这里. ...
- cucumber java从入门到精通(4)Scenario Outline及数据驱动
cucumber java从入门到精通(4)Scenario Outline及数据驱动 到目前为止,我们的TodoList类工作良好,不过离我们的预期--任务清单系统还是有不少差距,究其原因不过如下: ...
- Groovy 学习手册(1)
1. 需要安装的软件 Java / Groovy 对应 Java 和 Groovy,你需要安装以下软件: Java JDK,例如 JDK 8 IDE,例如 Eclipse,NetBeans 8 Gro ...
- 【转载并整理】javaweb单点登录
很好的一篇,讲述原理的文章: http://www.importnew.com/22863.html https://www.cnblogs.com/Leo_wl/p/6111623.html 京东s ...
- spring注解方式实现定时器
1.Spring的配置: <beans xmlns:task="http://www.springframework.org/schema/task" xsi:schemaL ...