vs2010中進行ffmpeg編譯與單步調試

本文在win7 x64系統上實踐後總結得到

1、  下載文件

C99-to-C89 Converter & Wrapper(https://github.com/libav/c99-to-c89/releases)

Msinttypes(http://code.google.com/p/msinttypes/downloads/list)

MinGW,包含MSYS(http://sourceforge.net/projects/mingw/)

YASM(http://yasm.tortall.net/Download.html)

ffmpeg源碼(http://www.ffmpeg.org/download.html)

SDL(http://www.libsdl.org/download-1.2.php)

2、  安裝MinGW,安裝的時候一定要選中msys,否則要另外下載安裝msys,如果不知道該安裝哪些選項,可選中Basic Setup中所有右邊選項進行安裝,如下圖1所示,然後選擇Installation->update catalogue->review changes->apply,等待安裝


圖1

3、  如果上一步驟中MinGW安裝的目錄爲D:/MinGW,則找到D:/MinGW/msys/1.0/msys.bat文件,打開文件並在最前面加上下面一行

call” D:\Program Files(x86)\MicrosoftVisual Studio 10.0\VC\bin\vcvars32.bat”(自己的VC安裝目錄)

4、  將D:\MinGW\msys\1.0\bin\link.exe改成mingw_link.exe,不要和VC的link衝突

5、  將C99-to-C89裏面的c99conv.exe、c99wrap.exe、makedef 複製到D:\MinGW\msys\1.0\bin,將下載的vsyasm.exe放入到D:\ ProgramFiles(x86)\Microsoft Visual Studio 10.0\VC\bin,將D:\MinGW\msys\1.0\bin及D:\MinGW\bin加入到系統變量path中,將msinttypes中的頭文件解壓出來,新建系統變量INCLUDE,將變量值改爲其所在路徑,重啓計算機(或者最後重啓)

6、  將下載的ffmpeg源碼解碼並放到D:\MinGW\msys\1.0\home\username目錄下,放置的目錄結構可如下圖2所示


圖2

7、  從菜單->所有程序->MicrosoftVisual Studio 2010->Visual Studio tools->Visual Studio x64兼容工具命令提示(2010)中啓動D:/MinGW/msys/1.0/msys.bat文件

8、  在msys環境中轉到你的ffmpeg源碼文件,源碼中第一級目錄應該有configure文件,輸入指令

./configure –toolchain=msvc –enable-memalign-hack–enable-debug –enable-shared(如圖3)

make

這樣可在你的ffmpeg各級目錄下分別找到編譯生成的dll,lib和exe文件,同時也能找到對應的pdb文件

make install

在D:\MinGW\msys\1.0\local文件下可找到編譯好的include文件,bin文件以及對象的lib文件


圖3

9、  一般經過這一步只能生成ffmpeg.exe和ffprobe.exe兩個應用程序,如果要生成ffpaly.exe應用程序,此時需要將SDL解壓後的文件中的bin,lib和include三個文件複製到文件目錄D:\MinGW\msys\1.0\local下,並與原來文件合併,同時打開sdl-config文件,將prefix=/usr/local/cross-tools/i686-w64-mingw32改成prefix=D:/MinGW,重新make即可生成對應的ffplay.exe(可選)

10、 由於PDB文件含有可調試信息,因此此時可以在vs2010中新建一個項目對你所需的ffmpeg中函數進行調試,注意需要將第7步中生成的lib,dll,pdb文件以及include文件包含進來,這樣就可以正式進行單步調試了。


值得注意的是,由於在編譯過程中採用了c99轉c89操作,導致pdb中調試信息和源代碼雖然大部分單步調試沒問題,但還是會出現少數代碼調試不匹配情況,所以如果非常準確調試ffmpeg的話最好還是上linux系統調試,本文方法只適合沒有linux系統而想通過windows上vs2010調試ffmpeg中大概功能流程的人。


最後,附上兩個參考網址:

http://ffmpeg.org/platform.html#Microsoft-Visual-C_002b_002b-or-Intel-C_002b_002b-Compiler-for-Windows

http://ffmpeg.zeranoe.com/forum/viewtopic.php?f=5&t=1309




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章