1. 程式人生 > >win7下利用vs2010編譯librtmp靜態庫

win7下利用vs2010編譯librtmp靜態庫

一、編譯librtmp

  下載rtmpdump的程式碼,你會發現,它是一個地道的linux專案,除了一個簡單的Makefile,其他什麼都沒有。好像librtmp不依賴於系統,我們可以不用費太多功夫,把它在windows上編譯。不過,librtmp依賴於openssl和zlib,我們需要首先編譯好它們。

  1. 編譯openssl1.0.0e

  a) 下載並安裝ActivePerl

  b) 下載並安裝nasm(http://nasm.sourceforge.net/)

  c) 解壓openssl壓縮包

  d) 執行Visual Studio 命令提示符(2010),切到openssl目錄,分別執行以下命令

>perl Configure VC-WIN32 --prefix=c:\some\dir
>ms\do_nasm

  e) 分別執行以下命令。

>nmake -f ms\ntdll.mak
>nmake -f ms\ntdll.mak install

  f) 編譯完畢後,即可在第一個命令所指定的目錄c:\some\dir 下發現編譯好的sdk。


  2. 編譯zlib

  a) 解壓zlib壓縮包

  b) 執行Visual Studio  命令提示符(2010),切到zlib-1.2.8根目錄(我下載的是zlib-1.2.8版本),分別執行以下命令

>cd contrib\masmx86
>bld_ml32.bat

  c) 回到zlib-1.2.8根目錄,進入contrib\vstudio\vc10目錄,開啟vs2010解決方案檔案 

>cd contrib\vstudio\vc10

     在zlibstat工程屬性中,去掉前處理器定義中的預編譯巨集 ZLIB_WINAPI


  d) 選擇debug或release編譯即可

3. 編譯librtmp

 a) 首先開啟visual studio 2010,新建一個win32 console工程,取名為:librtmp,指定為靜態連結庫(下面的圖中是librtmp1,因為與正在開啟的librtmp工程名衝突,所以臨時指定的)

    下載librtmp原始碼rtmpdump-2.3,解壓後如下圖:


  b) 將上圖librtmp資料夾下的 *.h和 *.c檔案新增到剛才新建的工程中,

把openssl、zlib的標頭檔案和librtmp放在一起,把編譯好的openssl和zlib的靜態庫放在一起