2017-04-21 71 views
1

几天后,我尝试构建FFmpeg库。我使用Windows7 64位和MSVC2010。我遵循本指南:https://trac.ffmpeg.org/wiki/CompilationGuide/MSVCFFmpeg MSVC编译卡住

我摆脱了视图错误,配置工作最后。但是当我尝试制作时,它会运行半个小时然后卡住。它不会继续,我保持它运行过夜,没有任何事情发生。我也尝试了不同的编译器选项,但每次都在同一点卡住。

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类型,万客隆重定义等

得到一吨像转换警告我不知道到哪里解决这个问题,所以我希望得到一些帮助。

+0

警告表示不干净的代码看起来suspicuous莫名其妙的编译器。这并不意味着代码不会运行。 (尽管最好编写干净的代码,这些代码在没有任何警告的情况下编译)。正如你所描述的那样,你的编译器似乎没有完成。根据我的经验,MSVC可能会以惊人的巨大尺寸生成中间代码。例如。我们在我们公司的高效代码中肯定有不到100 MB的源代码(.cc文件,.h文件等),但是我经常在编译后识别出多个千兆字节的附加(中间)文件。检查磁盘上的左侧空间... – Scheff

+0

我有300GB左右的空间,我从C盘更换为D,因为我之前遇到过这个问题,但现在不是这样。即使我尝试编译另一个版本的FFmpeg或不同的选项,它总是卡在完全相同的行。 在config.log文件中有几个错误,我不知道如何处理。改变代码是没有选择的,这个错误不应该发生在第一位......我对编译等很新,但这不是第一次。斯蒂尔......我现在不知道该怎么做。 – Earinor

+0

我也在Visual Studio 2010中的相同位置得到了同样的问题。 cl.exe在没有磁盘I/O的情况下运行了4个小时以上。 –

回答

0

我不知道为什么,但我解决了这个修改的libavcodec \ ffv1enc.c:

//#if FF_API_CODER_TYPE 
static const AVCodecDefault ffv1_defaults[] = { 
    { "coder", "-1" }, 
    { NULL }, 
}; 
//#endif 
//#if FF_API_CODER_TYPE 
    .defaults  = ffv1_defaults, 
//#endif