每次在 windows 上编译 ffmpeg 都是一种煎熬,因为我的机器上有非常多的开发环境,今天(20160528)为了能用上 ffserver,又一次编译了 ffmpeg,遇到坑无数,所以简单做个记录。
1. 一开始用电脑上以前装好的 msys+mingw 进行编译,结果只编出来 ffmpeg.exe ffplay.exe 和 ffprobe.exe,没有我要的 ffserver,网上查了一下,需要cygwin,于是又重新装了个 cygwin64
2. 第一次安装好 cygwin64 ,执行 ./configure --enable-shared --disable-static --enable-memalign-hack ,发生了 “gcc is unable to create an executable file.” 错误,这个错误的原因蛮多的,具体原因可以查看 ./config.log 和 ./config.err 文件,我的问题是 gcc 命令没找到,网上查了一下,发现是 cygwin 安装的时候没选 gcc 工具
3. cygwin 安装时候带gcc 的方法可参看: http://qichunren.iteye.com/blog/214527 ,写得很详细
4. 重新安装cygwin 以后,又发现新的错误,叫什么 隐式函数声明错误,我的处理方法比较粗暴,直接把 config.mak 中的 -Werror=implicit-function-declaration 给删掉了,于是顺利编译成功
20210223:
缺 clock_gettime 和 nanosleep:修改 config.mak 中的 EXTRALIBS-avcodec 变量,加了:-lwinpthread
这个问题还可以通过在 ./configure 的时候,增加 --extra-libs="-lwinpthread" 来搞定,更优雅