2017-04-21 74 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