VS2008下編譯ptlib和opal Opal作爲SIP協議棧和新的H323協 議棧,而且以原來的確openh323開發人員爲班底,在VoIP當 有很大的潛力,由於早期研究過一些openh323,現在更喜歡SIP協 議,所以初次下載來編譯看看。 環 境是:windows xp sp2加上VS2008TeamSuite版 1 下載ptlib和opal ptlib下 載:svn co https://opalvoip.svn.sourceforge.net/svnroot/opalvoip/ptlib/trunk/ ptlib opal下 載:svn cohttps://opalvoip.svn.sourceforge.net/svnroot/opalvoip/opal/trunk/opal 2 設置環境 1. 下載bison工具,解壓到C盤, 目錄爲C:\Tools 2. 打工VS2008:“工具/選項/項目和解決方案/VC++ 目 錄” Ø 在“可執 行文行”目錄加入: C:\Tools E:\Rooney\videoconf\opalvoip\project\ptlib\lib E:\Rooney\videoconf\opalvoip\project\opal\lib Ø 在“包含 文件”目錄加入 E:\Rooney\videoconf\opalvoip\project\ptlib\include E:\Rooney\videoconf\opalvoip\project\opal\include Ø 在“庫文 件”目錄加入: E:\Rooney\videoconf\opalvoip\project\ptlib\lib E:\Rooney\videoconf\opalvoip\project\opal\lib 3 編譯ptlib 打開ptlib(當然是用VS2008),先在DEBUG模式下編譯,如果DEBUG過 了,RELEASE是應該沒有問題。 1. 直接編譯configure 一 般況下都可以順利通過,編完之後,可以檢查一下E:\Rooney\videoconf\opalvoip\project\ptlib目錄下是不是多了一個configure.exe可執行文件 2. 編譯MergeSym 這時會出錯: Ø 一是找不 到IPV6需的頭文件和庫(如說沒有tpipv6.h文件),本來我是想用起IPV6,由於去微軟網站下載新的SDK裝 上也沒有相應的頭文件,由於我放棄了IPV6(不知有沒有誰能解決這問題,讓ptlib用 起IPV6),放棄IPV6的辦法是:修改E:\Rooney\videoconf\opalvoip\project\ptlib\include\ptbuildopts.h(該文件是在編譯ptlib時查找環境自動生成的)。紅色部分爲修改部分。
將上面的修改爲:
Ø 二是居然 說”MergeSym”不是可執行命令,這在以爲openh323是沒有碰到的,由於我把生成的MergeSym.exe(在E:\Rooney\videoconf\opalvoip\project\ptlib\bin\MergeSym\Debug下)文件拷貝到E:\Rooney\videoconf\opalvoip\project\ptlib還是不報同樣的錯,我只能把MergeSym.exe拷貝到E:\Rooney\videoconf\opalvoip\project\ptlib\Lib,然後再去編譯,終於通過了,本來相在VS項目中寫入這樣的腳本,但考慮ptlib項目是經常更新的,修改了就不同步了,由於只能記錄下來,爲下次編譯作參考,這也是寫這說明的重要原因。 3. 直接編PTLib DLL通 過 4. 直接編譯PTLib Static通 過 5. 檢查文件,在目錄E:\Rooney\videoconf\opalvoip\project\ptlib\Lib有文件如下:
注意:
Configure 的 參數 可以設置: .\configure--disable-ipv6 --disable-openssl--disable-java --disable-fax --disable-h323--disable-iax2 --disable-t38--disable-lids--disable-odbc --disable-sdl --disable-openldap --disable-dsound --disable-dshow--disable-vidfile --disable-httpsvc--disable-httpforms--disable-ffvdev --disable-ftp --disable-telnet--disable-plugins
可能出現如下錯誤 //編譯時 出現錯誤 syslog.h 中 的 #define 的定義有換行 ,不能換行 。 錯誤 2 errorBK1506 : 無法打開文件“..\..\..\Lib\Debug\collect.sbr”: No such fileordirectory BSCMAKE 錯誤 1 errorC4335: 檢測到 Mac 文件格式: 請將源文件轉換爲DOS 格式或 UNIX 格式 g:\SipMeeting\opal\Opal3.8_cs\ptlib\include\ptlib\syslog.h 1 錯誤 3 fatalerror LNK1104: 無法打開文件“ptlibsd.lib” MergeSym opal的編譯 4 編譯opal 編 譯opal並沒有什麼特別要注意的,打開opal(當然是用VS2008了),然後編譯”OPALStatic”和”OPAL_dll”,都是DEBUG模式編譯,不過這裏也有一個問題是將“MergeSym.exe”拷貝到opal當 前路徑E:\Rooney\videoconf\opalvoip\project\opal下,編譯後文件列表如下:
自己的編譯: .\configure--no-search --disable-java --disable-fax--disable-h323--disable-iax2 --disable-t38 --disable-lids --disable-mixer--disable-pcss--disable-ivr 然後直接編譯
|
轉自:http://hi.baidu.com/liyong042/blog/item/f06e9d183a77ba5e42a9ad68.html