FFMpeg中的執行個體output_example.c的編譯

來源:互聯網
上載者:User

                 FFMpeg中的執行個體output_example.c的編譯

關於ffmpeg在windows上的編譯,在www.ffmpeg.com.cn上有詳細的講解,在成功編譯好ffmpeg後,便在MSVC中編譯ffmpeg內建的執行個體output_example.c。首先自己在MSVC下建立一個空的控制台的應用程式,將output_example.c加入到工程中。由於在MSVC中是使用編譯ffmpeg時生產的.lib和.dll檔案,所以我們需要串連它們。在這裡我們需要avcodec-51.lib、avformat-51.lib和avutil-49.lib這三個靜態庫,故在我們編譯工程之前就將它們加到工程中。 編譯會發現提示: Cannot open include file: 'inttypes.h': No such file or directory 的出錯資訊,可通過如下方法解決:
1、找到include目錄中的ffmpeg/common.h
2、在“#define COMMON_H”之後加入如下代碼,同時刪除“#include <inttypes.h>” 然後儲存:#if defined(WIN32) && !defined(__MINGW32__) && !defined(__CYGWIN__)<br /># define CONFIG_WIN32<br />#endif<br />#if defined(WIN32) && !defined(__MINGW32__) && !defined(__CYGWIN__) && !defined(EMULATE_INTTYPES)<br /># define EMULATE_INTTYPES<br />#endif<br />#ifndef EMULATE_INTTYPES<br /># include <inttypes.h><br />#else<br /> typedef signed char int8_t;<br /> typedef signed short int16_t;<br /> typedef signed int int32_t;<br /> typedef unsigned char uint8_t;<br /> typedef unsigned short uint16_t;<br /> typedef unsigned int uint32_t;<br /># ifdef CONFIG_WIN32<br /> typedef signed __int64 int64_t;<br /> typedef unsigned __int64 uint64_t;<br /># else /* other OS */<br /> typedef signed long long int64_t;<br /> typedef unsigned long long uint64_t;<br /># endif /* other OS */<br />#endif /* EMULATE_INTTYPES */<br />   再次編譯出現錯誤     error C2054: 在“inline”之後應輸入“(” 這樣一系列錯誤,我們只要在“#define COMMON_H”之後加入如下代碼 #if defined(WIN32) && !defined(__cplusplus)
#define inline __inline
#endif 再次編譯發現出現error LNK2019: 無法解析的外部符號_snprintf,該符號在函數_main 中被引用這個串連錯誤(注意要是沒有將開頭說的那三個庫先加入,這兒出現的串連錯誤更多)。 分析後知道錯誤是由第470行 snprintf(oc->filename, sizeof(oc->filename), "%s", filename); 引起的,解決方案如下:MSVC 2005: 修改為_snprintf_s(oc->filename, _countof(oc->filename), 1024, "%s", filename); MSVC 6.0 修改為_snprintf(oc->filename, sizeof(oc->filename), "%s", filename)。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.