在MINGW32下编译ffmpeg-2.1.1.tar.bz2

step1: ./configure   --prefix=/home/Administrator/install --extra-cflags=-I/home/Administrator/install/include --extra-ldflags=-L/home/Administrator/install/lib --enable-gpl   --enable-version3   --enable-memalign-hack --enable-nonfree --disable-doc   --disable-htmlpages   --disable-manpages   --disable-podpages   --disable-txtpages --disable-static   --enable-shared

step2: make

step3: make install

执行step2出现多处类型如下的报错:

D:\ProgramFile\MinGW\include\unistd.h:79:1: error: expected ',' or ';' before 'int'
int __mingw_sleep( unsigned long, unsigned long );
^
In file included from libavformat/file.c:26:0:

涉及的文件如下:

D:\ProgramFile\MinGW\msys\1.0\home\Administrator\source\ffmpeg-2.1.1\libavutil目录下 file.c file_open.c log.c random_seed.c time.c

D:\ProgramFile\MinGW\msys\1.0\home\Administrator\source\ffmpeg-2.1.1\libavformat目录下 cache.c file.c smoothstreamingenc.c

D:\ProgramFile\MinGW\msys\1.0\home\Administrator\source\ffmpeg-2.1.1\目录下 ffmpeg.c

对策:增加#include <windows.h>


#if HAVE_UNISTD_H
#include <unistd.h>
#endif
修改成
#if HAVE_UNISTD_H
#include <windows.h>
#include <unistd.h>
#endif

----------------------------------------------------------------

./configure   --prefix=/home/Administrator/install --extra-cflags=-I/home/Administrator/install/include   --extra-ldflags=-L/home/Administrator/install/lib --enable-gpl   --enable-version3   --enable-memalign-hack --enable-nonfree --disable-static --enable-shared --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --enable-bzlib --enable-zlib --enable-iconv --enable-libx264 --enable-libxavs --enable-libmp3lame --enable-libfaac --enable-libfdk-aac --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libopencore-amrnb --enable-libopencore-amrwb

改法1:将 #if CONFIG_ZLIB #include <zlib.h> #endif 修改成 #if CONFIG_ZLIB #include <windows.h> #include <zlib.h> #endif

改法2:在编译报错的地方增加添加#include <windows.h>

文件列表: D:\ProgramFile\MinGW\msys\1.0\home\Administrator\source\ffmpeg-2.1.1\libavformat目录下 id3v2.c matroskadec.c mov.c swdec.c swenc.c

D:\ProgramFile\MinGW\msys\1.0\home\Administrator\source\ffmpeg-2.1.1\libavcodec目录下 cscd.c dxa.c lcldec.c lclenc.c pngdec.c pngenc.c svq3.c tiff.c tiffenc.c tscc.c zmbv.c zmbvenc.c

编译FFMPEG错误对策的更多相关文章

  1. mingw编译ffmpeg 错误:Unknown option "--enable-memalign-hack"

    据说mingw编译ffmpeg的话需要添加 --enable-memalign-hack 开关 但如果源码是最新版比如:ffmpeg4.0.2 的话 好像已经禁用了该开关. “我可以确认新的ffmpe ...

  2. VS2015编译FFMPEG,修改FFmpeg缓冲区大小解决实时流解码丢包问题,FFmpeg错误rtsp流地址卡死的问题,设置超时

    之前尝试过很多网上利用Windows编译FFmpeg的文章,都没有办法编译X64位的FFmpeg,有些教程中有专门提到编译64位的FFmpeg需要下载mingw-w64-install,但是编译的过程 ...

  3. vs2015编译ffmpeg 出现错误rtmp.lib(rtmp.obj) : error LNK2001: 无法解析的外部符号 ___iob_func

    vs2015编译ffmpeg(版本3.0.2)引用外部库文件librtmp出现以下错误: rtmp.lib(rtmp.obj) : error LNK2001: 无法解析的外部符号 __imp__st ...

  4. vs2012 MinGW编译ffmpeg 出现libavdevice/avdevice.c(38) : error C2059: 语法错误:“.”

    利用vs2012编译ffmpeg出现以下错误: libavdevice/avdevice.c(38) : error C2059: 语法错误:“.” libavdevice/avdevice.c(40 ...

  5. iOS编译FFmpeg、kxmovie实现视频播放 (转载)

    由于FFmpeg开源框架的功能非常强大,可以播放的视频种类很多,同时添加第三方库kxmovie,实现视频播放,真的是爽爆了,因此今天来说一下关于FFmpeg在iOS手机上的一些配置过程,配置工具,还有 ...

  6. 开源项目:windows下使用MinGW+msys编译ffmpeg

    本文参考了网络上的不少文章,但由于版本环境的问题参考文章并不能直接指导编译,本文吸收多方经验,并在自己多次编译实验的基础上写成,欢迎转载,请注名出处.    FFmpeg是在Linux平台下开发的,但 ...

  7. NDK编译FFMpeg[Linux]

    最近在研究视频直播相关的技术,了解到了FFmpeg,就在网上查看如何将FFmpeg移植到Android中,查了几天,看的东西不少,就是没有一个可以完全移植成功的,最后通过产看各种资料,结合网上的资料, ...

  8. windows下编译ffmpeg

    windows 编译ffmpeg 搞过很多次,每次总是磕磕碰碰,从头到尾不能一直顺利,浪费一些时间.终究起原因,都是当时记得,过段时间就忘了.好记性不如烂笔头,大好周末晚上,闲暇无事,记录最近一次编译 ...

  9. windows 下使用 MinGW + msys 编译 ffmpeg

    本文参考了网络上的不少文章,但由于版本环境的问题参考文章并不能直接指导编译,本文吸收多方经验,并在自己多次编译实验的基础上写成,欢迎转载,请注名出处.    FFmpeg是在Linux平台下开发的,但 ...

随机推荐

  1. 进击JavaScript核心 --- (3)面向对象

    JS中的对象定义为:无序属性的结合,其属性可以包含基本值.对象或者函数   1.定义对象的方式   (1).Object构造函数 var student = new Object(); student ...

  2. 【模板】OI常用模板(待补充)

    //PS:最近修改日期:2017-11-07 20:41:44 首先感觉这种模板类的东西写了还是很有意义的,毕竟时不时的可以拿出来借鉴一下. 现在因为刚开始写这一类的东西,所以说还不是很详细,若有读者 ...

  3. MessageListenerAdapter--消息监听适配器

    我们把之前的消息监听代码注释,可以不用直接加消息监听,而是采用MessageListenerAdapter的方式,我们来学习下如何使用默认的handleMessage,自定义方法名,自定义转换器. 适 ...

  4. RabbitAdmin

    RabbitAdmin底层实现就是从Spring容器中获取Exchange.Binding.Routingkey以及Queue的@声明然后使用RabbitTemplate的execute方法执行对应的 ...

  5. Linux之防火墙iptables

    一.检查iptables服务状态 1.首先检查iptables服务的状态 [root@bogon ~]# service iptables status iptables: Firewall is n ...

  6. C++入门经典-例7.6-this指针,同一个类的不同对象数据

    1:对于类的非静态成员,每个对象都有自己的一份拷贝,即每个对象都有自己的数据成员,不过成员函数却是每个对象共享的.那么调用共享的成员函数如何找到自己的数据成员呢?答案是通过类中隐藏的this指针. 2 ...

  7. Node.js自学完全总结

    零.什么是Node.js? 引用Node.js官方网站的解释如下: Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript e ...

  8. HearthBuddy Plugin编写遇到的问题

    错误1 赋值问题 貌似编译器版本有点低,无法识别C#的高级语法糖 属性的初始值,必须是public bool IsEnabled { get{return true;} } 不能写成public bo ...

  9. logstash的index值可以为中文

    logstash中的 output中 有index属性,表示在elk中的主键标识. 在实际应用中,index的值不能为大写字母,可以是小写字母.数字.下划线.中文. 这里重点强调index为中文时,注 ...

  10. [windows菜鸟]C#中调用Windows API参考工具

    很多windows API都不知道签名,可以从下面几种方式进行查询 1.微软出的工具 P/Invoke Interop Assistant version 1.0 2.网站 pinvoke.net 3 ...