MinGW下編譯ffmpeg靜態庫給Visual C++使用

首先推薦?http://ffmpeg.zeranoe.com/builds/, 這里已經有編譯好的動態連接庫。可惜上面沒靜態鏈接庫。我也試過 DLL2Lib, 但是無法連接LIBCMT庫,只能使用MSVCRT

所以一定要靜態庫的話只能自己編譯了。在Windows上用MinGW編譯真是個痛苦的過程,沒有yum install和apt-get,所有的依賴項要自己找全。

廢話少說,下面是編譯過程,記錄于此。


本文地址: http://blog.csdn.net/wangjia184/article/details/7931164

  1. ??

準備

首先 下載安裝 MinGW, 比較贊的是,現在它提供自動化的安裝配置程序,相比以前大大簡化了安裝過程,連fstab都幫你配置了。

安裝完成后編輯?MinGW\msys\1.0\msys.bat 批處理, 在文件最前面加入一行,調用 Visual Studio的?vcvarsall.bat?批處理設置環境變量

  1. call??"C:\Program?Files?(x86)\Microsoft?Visual?Studio?10.0\VC\vcvarsall.bat"??

本文地址: http://blog.csdn.net/wangjia184/article/details/7931164

接著在MinGW的下載站點上 下載安裝 g++,我下載的版本是4.6.2,覆蓋到MinGW目錄即可.

http://sourceforge.net/projects/mingw/files/MinGW/Base/gcc/Version4/gcc-4.6.2-1/gcc-c%2B%2B-4.6.2-1-mingw32-bin.tar.lzma/download


然后下載? yasm?Win32 版本,將文件重命名并分別復制2份到? MinGW\bin\yasm.exe 和? MinGW\bin\nasm.exe , 后面很多編譯的項目依賴于它們.

執行msys.bat, 在命令行窗口中切換到打算編譯的目錄。比如我的在L盤, 則使用 cd /L/ 進入, 其它文件命令與Linux一致。

準備活動到此結束,下面就開始漫長的編譯過程了。

本文地址: http://blog.csdn.net/wangjia184/article/details/7931164

編譯依賴項(下面的版本號是我編譯的時候的版本號,不一定必須是這個版本號)

1. Zlib 1.2.7

下載源代碼?http://zlib.net/?解壓后:

  1. cd?zlib-1.2.7/??
  2. make?-f?win32/Makefile.gcc??
  3. cp?-iv?zlib1.dll?/mingw/bin??
  4. cp?-iv?zconf.h?zlib.h?/mingw/include??
  5. cp?-iv?libz.a?/mingw/lib??
本文地址: http://blog.csdn.net/wangjia184/article/details/7931164
2.?libgsm?1.0.13-3

下載源代碼,?http://libgsm.sourcearchive.com/,?解壓后:

  1. cd?gsm/??
  2. make??

編譯到一半的時候出現?fchmod 和?fchown 的編譯錯誤,不管它,繼續執行:

  1. mkdir?/mingw/include/gsm??
  2. cp?inc/gsm.h?/mingw/include/gsm??
  3. cp?lib/libgsm.a?/mingw/lib??

本文地址: http://blog.csdn.net/wangjia184/article/details/7931164
3.?LAME 3.99.5

下載源代碼, http://sourceforge.net/projects/lame/files/lame/, 解壓后:

  1. ./configure?--prefix=/mingw?--enable-expopt=full??
  2. make??
  3. make?install??
本文地址: http://blog.csdn.net/wangjia184/article/details/7931164
4. LIB OGG 1.3.0

下載源代碼,http://xiph.org/downloads/,解壓后:

  1. ./configure?--prefix=/mingw??
  2. make??
  3. make?install??
本文地址: http://blog.csdn.net/wangjia184/article/details/7931164

5. LIBVorbis 1.3.3

下載源代碼,http://xiph.org/downloads/,解壓后:

  1. ./configure?--prefix=/mingw??
  2. make??
  3. make?install??
本文地址: http://blog.csdn.net/wangjia184/article/details/7931164

6. LIBSpeex 1.2rc1

下載源代碼,http://xiph.org/downloads/,解壓后:

  1. ./configure?--prefix=/mingw??
  2. make??
  3. make?install??
本文地址: http://blog.csdn.net/wangjia184/article/details/7931164

7. LIBTheora?1.1.1

下載源代碼,http://xiph.org/downloads/,解壓后:

  1. ./configure?--prefix=/mingw??
  2. make??
  3. make?install??
本文地址: http://blog.csdn.net/wangjia184/article/details/7931164

8. FAAC?1.2.8

下載源代碼,http://www.audiocoding.com/downloads.html,解壓后:

首先編輯 Makefile.am 文件,將第一行 改為?

SUBDIRS = include libfaac

然后修改configure.in文件, 找到最后一段的?AC_OUTPUT, 修改為

AC_OUTPUT(libfaac/Makefile include/Makefile Makefile)

執行:

  1. ./configure?--prefix=/mingw??
  2. make??
  3. make?install??
本文地址: http://blog.csdn.net/wangjia184/article/details/7931164

9. xvidcore?1.3.2

下載源代碼,http://www.xvid.org,解壓后:

  1. cd?xvidcore/build/generic??
  2. ./configure?--prefix=/mingw??

執行到這里后,搜索 xvidcore/build/generic 目錄下面所有文件中的? -mno-cygwin 這個選項, 這個選項已經不被GCC支持,全部刪除后繼續。
  1. make??
  2. make?install??
  3. cp?-iv?\=build/xvidcore.dll.a?/mingw/lib/libxvidcore.dll.a??
本文地址: http://blog.csdn.net/wangjia184/article/details/7931164

10. x264?snapshot-20120830-2245

下載源代碼,http://www.videolan.org/developers/x264.html,解壓后:

  1. configure?--prefix=/mingw?--enable-win32thread?--extra-cflags="-DX264_VERSION=20100422"??
  2. make??
  3. make?install??
  4. cp?-iv?x264.h?x264_config.h?/mingw/include??
  5. cp?-iv?libx264.a?/mingw/lib??
  6. cp?-iv?x264.pc?/mingw/lib/pkgconfig??
本文地址: http://blog.csdn.net/wangjia184/article/details/7931164

編譯ffmpeg 0.11.1

相信有耐心進行到這里的人,已經花了1-2個小時了,這是正常的速度。終于可以編譯ffmpeg了.

下載源代碼, http://ffmpeg.org ,解壓后首先配置,光這個自動配置過程也要十分鐘左右。

  1. ./configure?--prefix=/mingw?--enable-gpl?--enable-nonfree?--enable-postproc?--enable-avfilter?--enable-w32threads?--enable-runtime-cpudetect?--enable-memalign-hack?--enable-bzlib?--enable-libfaac?--enable-libgsm?--enable-libmp3lame?--enable-libspeex?--enable-libtheora?--enable-libvorbis?--enable-libx264?--enable-libxvid?--enable-zlib?--disable-debug??

然后 make & make install 等著編譯結束吧。 本文地址: http://blog.csdn.net/wangjia184/article/details/7931164

鏈接

鏈接靜態庫需要注意鏈接的順序, 我的VC版本是VS2010
  1. #ifdef?__cplusplus??
  2. extern?"C"?{??
  3. #endif??
  4. ??
  5. #include?<libavcodec/avcodec.h>??
  6. #include?<libavformat/avformat.h>??
  7. #include?<libavutil/avutil.h>??
  8. #include?<libswscale/swscale.h>??
  9. ??
  10. #ifdef?__cplusplus??
  11. }??
  12. #endif??
  13. #pragma?comment(?lib,?"libgcc.a")??
  14. #pragma?comment(?lib,?"libmingwex.a")??
  15. #pragma?comment(?lib,?"libcoldname.a")??
  16. #pragma?comment(?lib,?"libavcodec.a")??
  17. #pragma?comment(?lib,?"libavformat.a")??
  18. #pragma?comment(?lib,?"libavutil.a")??
  19. #pragma?comment(?lib,?"libswscale.a")??
  20. #pragma?comment(?lib,?"libz.a")??
  21. #pragma?comment(?lib,?"libfaac.a")??
  22. #pragma?comment(?lib,?"libgsm.a")??
  23. #pragma?comment(?lib,?"libmp3lame.a")??
  24. #pragma?comment(?lib,?"libogg.a")??
  25. #pragma?comment(?lib,?"libspeex.a")??
  26. #pragma?comment(?lib,?"libtheora.a")??
  27. #pragma?comment(?lib,?"libvorbis.a")??
  28. #pragma?comment(?lib,?"libvorbisenc.a")??
  29. #pragma?comment(?lib,?"libx264.a")??
  30. #pragma?comment(?lib,?"xvidcore.a")??
  31. #pragma?comment(?lib,?"wsock32.lib")??
  32. #pragma?comment(?lib,?"vfw32.lib")?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/450759.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/450759.shtml
英文地址,請注明出處:http://en.pswp.cn/news/450759.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

元模型是什么

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 元模型 元模型&#xff0c;是特定領域的模型&#xff0c;用于創建該領域中的模型的構建元素。典型的元模型結構可以分為四種&#xff1a;…

使用 NodeJS+Express+MySQL 實現簡單的增刪改查

關于node.js暫時記錄如下&#xff0c;以后有時間一定學習 文章來自簡書&#xff0c;作者&#xff1a;sprint&#xff0c;2016-07 使用 Node.js ExpressMySQL 實現簡單的增刪改查 https://www.jianshu.com/p/0a161f341771 使用 Node.js Express 開發服務端 https://www.jiansh…

zabbix安裝過程

安裝了兩天&#xff0c;zabbix監控服務器終于搭建好了。搭建過程中遇到過很多問題&#xff0c;都逐一解決了&#xff0c;好在有強大的網絡搜索&#xff0c;和網絡上牛人的優秀博客&#xff0c;讓我能夠不斷的解決問題。之前在虛擬機上裝過&#xff0c;覺得應該很簡單&#xff0…

Spring Data JPA入門

見&#xff1a;http://sishuok.com/forum/blogPost/list/7000.html Spring Data是什么 Spring Data是一個用于簡化數據庫訪問&#xff0c;并支持云服務的開源框架。其主要目標是使得對數據的訪問變得方便快捷&#xff0c;并支持map-reduce框架和云計算數據服務。 Spring Data…

劃分用戶故事(user-story)的原則

在敏捷開發過程中是通過用戶故事來將需求具體化成可以進行迭代開發的一個個現實的可見的開發任務。因此在敏捷軟件的開發過程中&#xff0c;用戶故事的劃分對于迭代和開發起著舉足輕重的作用。 用戶故事從其名字來看是站在用戶的角度所描述的故事&#xff0c;同時也是用戶所能看…

【git】----- clone 及上傳文件

在GitHub上創建一個項目首先點擊新存儲庫進入創建的步驟創建完成后跳轉到下一個頁面復制路徑然后在自己的新建的文件夾里面&#xff08;例如:git&#xff09;右鍵&#xff0c;點擊Git Bash Here進入命令行輸入 git clone 輸入剛剛拷貝的路徑&#xff08;https://github.com/nam…

數據結構與算法總結

文章目錄線性數據結構1. 數組2. 鏈表2.1. 鏈表簡介2.2. 鏈表分類2.2.1. 單鏈表2.2.2. 循環鏈表2.2.3. 雙向鏈表2.2.4. 雙向循環鏈表2.3. 應用場景2.4. 數組 vs 鏈表3. 棧3.1. 棧簡介3.2. 棧的常見應用常見應用場景3.2.1. 實現瀏覽器的回退和前進功能3.2.2. 檢查符號是否成對出現…

使用 Spring Data JPA 簡化 JPA 開發

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 從一個簡單的 JPA 示例開始 本文主要講述 Spring Data JPA&#xff0c;但是為了不至于給 JPA 和 Spring 的初學者造成較大的學習曲線&am…

JS 取整、取余

一、取整 1. 取整 // 丟棄小數部分,保留整數部分 parseInt(7/2)  // 3 2. 向上取整 // 向上取整,有小數就整數部分加1 Math.ceil(7/2)  // 4 3. 向下取整 // 向下取整,丟棄小數部分 Math.floor(7/2)  // 3 4. 四舍五入 // 四舍五入 Math.round(7/2)  // 3 二、取余 // …

中國歷史朝代及皇帝簡介

一 、原始社會&#xff08;約170萬年前到約公元前21世紀&#xff09;  [詳細]約170萬年前 元謀人生活在云南元謀一帶       查看元謀人>>約70-20萬年前北京人生活在北京周口店一帶      查看北京人>>約1.8萬年前山頂洞人開始氏族公社的生活      …

Hadoop基礎-Hdfs各個組件的運行原理介紹

Hadoop基礎-Hdfs各個組件的運行原理介紹 作者&#xff1a;尹正杰 版權聲明&#xff1a;原創作品&#xff0c;謝絕轉載&#xff01;否則將追究法律責任。 一.NameNode工作原理&#xff08;默認端口號&#xff1a;50070&#xff09; 1>.什么是NameNode NameNode管理文件系統的…

JPA入門例子(采用JPA的hibernate實現版本)

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 &#xff08;1&#xff09;、JPA介紹&#xff1a; JPA全稱為Java Persistence API &#xff0c;Java持久化API是Sun公司在Java EE 5規范…

IDEA詳細配置與使用

文章目錄一、IntelliJ IDEA 介紹二、查看安裝目錄結構三、查看設置目錄結構3.1 config目錄3.2 system目錄四、設置顯示常見的視圖1.工程界面展示2.如何刪除模塊3.查看項目配置五、常用配置1.Appearance & Behavior2. Editor - General3. Editor – Font4. Editor – Color …

M1905

11.09 11&#xff1a;00------102萬                          11.09 14:00---103萬 11.12 16:00------103萬                          11.19 16:00---94萬 11.20 16:00----94.9萬          …

前端又要失失失失失失失失失業了!

1. 禍起 看到標題&#xff0c;切圖仔們又是菊花一緊。前幾天微軟剛剛開源Sketch2Code&#xff0c;讓UI草圖轉化成HTML代碼。切圖仔瑟瑟發抖。 還沒等切圖仔調整好心情&#xff0c;號稱H5代碼生成工具的H5DS也開源了最新的代碼。 尼瑪&#xff0c;H5代碼都可以一鍵生成了&#x…

我是如何對研發和測試人員進行量化的績效考核的

我把硬件開發、軟件開發和測試人員的績效考核分成3部分&#xff0c;即重點工作、績效改進和績效浮動。下面分別進行說明它們的量化方法。1. 重點工作的績效量化方法重點工作的量化標準應從數量&#xff08;包括文檔&#xff09;、時間、質量和難度系數等多個維度來評定。…

常見cmd命令,開發人員必備

運行程序 notepad--------打開記事本calc-----------啟動計算器regedit.exe-------注冊表write----------寫字板mmc------------打開控制臺iexpress-------木馬捆綁工具&#xff0c;系統自帶fsmgmt.msc-----共享文件夾管理器osk------------打開屏幕鍵盤certmgr.msc----證書管理…

IDEA常用快捷鍵【win-mac對比】

文章目錄Mac 鍵盤符號說明CtrlAltShiftCtrl AltCtrl ShiftAlt ShiftCtrl Shift Alt其他Mac 鍵盤符號說明 ? Command? Shift? Caps Lock? Option? Control? Return/Enter? Delete? 向前刪除鍵&#xff08;FnDelete&#xff09;↑ 上箭頭↓ 下箭頭← 左…

SpringBoot 之環境搭建

見: http://bbs.itmayiedu.com/article/1491835651684 1. 什么是**SpringBoot&#xff1f;** Spring Boot 是由 Pivotal 團隊提供的全新框架&#xff0c;其設計目的是用來簡化新 Spring 應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置&#xff0c;從而使開發人…

十五、類與封裝的概念

1、類的封裝 C中類的封裝&#xff1a; 成員變量&#xff1a;C中用于表示類屬性的變量成員函數&#xff1a;C中用于表示類行為的函數 C中可以給成員變量和成員函數定義訪問級別 public&#xff1a;成員變量和成員函數可以在類的內部和外界訪問和調用 private&#xff1a;成員變量…