【发布时间】:2017-04-21 12:35:01
【问题描述】:
几天来,我尝试构建 FFmpeg 库。我正在使用 Windows7 64 位和 MSVC2010。我遵循了这个指南:https://trac.ffmpeg.org/wiki/CompilationGuide/MSVC
我摆脱了视图错误,configure 终于可以正常工作了。但是当我尝试make时,它运行了半个小时然后卡住了。它不会继续,我让它运行了一夜,什么也没发生。我也尝试了不同的编译器选项,但每次都在同一点卡住。
ffv1dec.o_converted.c
d:\cpplibraries\ffmpeg-master\libavcodec\get_bits.h(308) : warning C4101: 're_cache' : unreferenced local variable
d:\cpplibraries\ffmpeg-master\libavcodec\golomb.h(360) : warning C4245: '=' : conversion from 'int' to 'unsigned int', signed/unsigned mismatch
我也尝试设置 minGW64 Msys2 环境,但在那里遇到了同样的问题。 我也尝试了另一种设置,但是当我摆脱一些错误时,我总是卡在完全相同的位置。
cl.exe 正在运行并正在使用内存,但没有任何反应。
我还收到大量警告,例如从 int 到 unsigned int 的转换、Makro 重新定义等。
我不知道去哪里解决这个问题,所以我希望能得到一些帮助。
【问题讨论】:
-
警告表明不干净的代码在编译器看来是可疑的。这并不意味着代码不会运行。 (尽管最好编写干净的代码,在没有任何警告的情况下进行编译。)正如您所描述的,您的编译器似乎没有完成。根据我的经验,MSVC 可能会生成大小惊人的中间代码。例如。我们公司的生产代码中肯定有少于 100 MB 的源代码(.cc 文件、.h 文件等),但我经常在编译后识别出多个千兆字节的附加(中间)文件。检查磁盘上的剩余空间...
-
我还有超过 300GB 的空间,我从 C 盘转到 D 盘,因为我之前遇到过问题,但现在不是这样了。即使我尝试编译另一个版本的 FFmpeg 或使用不同的选项,它也总是卡在完全相同的行上。在 config.log 文件中列出了几个错误,我不确定如何处理。更改代码是没有选择的,而且这个错误首先不应该发生......我对编译等很陌生,但这不是第一次。仍然......我现在真的不知道该怎么办。
-
我在 Visual Studio 2010 的同一时间也遇到了同样的问题。 cl.exe 在没有磁盘 I/O 的情况下运行了 4 个多小时。
-
如果我运行以前的版本(我试过 2.8),它编译成功。唯一的问题是我需要一些 3.x 版附带的过滤器。我不知道你到底想用 ffmpeg 做什么,但也许这会解决你的问题。我现在将尝试禁用一些东西,也许我实际上并不需要它到底卡在哪里。虽然我真的很想知道问题出在哪里。
标签: c++ build ffmpeg compilation