Linphone SDK開源庫的學習和使用(一)

作爲學習日誌記錄下吧,順便把做項目過程中遇到的問題留給備案~~

從聽說到編譯成功linphone-iPhone,前後用了近兩天的時間,其實很大一部分時間和經歷是被糾結的網速浪費掉了。。。。

1 下載源碼(這個源碼包的完整性很重要,千萬保證中間不要斷網,否則從頭開始。。。)

選一個乾淨的目錄,在終端或者iTerm下

git clone git://git.linphone.org/linphone-iphone.git --recursive,然後打開源碼包,找到README參照一步步進行,我是按照readme中的步驟進行的,使用的文件管理工具是Homebrew,當然也可以使用Macports,比參考這個帖子http://shallwelearn.com/blog/build-linphone-for-iphone-and-ipad/。

2 按照經驗貼或者readme中步驟,下載安裝各種依賴包大約有七八個的樣子吧。

3 進行system linking 

其實這些都沒什麼可說,步驟不是一樣的,問題卻五花八門,確實很讓人糾結。

4 按照需求在build下進行make all 或者make all &&enable_gpl_third_parties=no

5 問題及其解決方法

make之後就是大批錯誤到來的時候,由於之前編譯的代碼各種缺文件,然後進行各種安裝,結果還是各種報錯,所以懷疑是源碼包的問題,存在着不同依賴包之間版本不匹配的問題,乾脆重新git一份,這次再編譯的問題就少很多,下面列舉一下我遇到的問題:

  1) 由於在編譯第一個版本的時候所有的依賴包都已經下載安裝了,所以不存在缺包的問題,第一個就是網絡問題,編譯過程中需要鏈接Google和Webrec的官網,這個真的沒什麼其他辦法,只能使用vpn賬號或者用一個什麼加速器的東西。

  2) 報錯 問題來源是nasm依賴包,鑑於一般不會出現代碼的問題,首先懷疑是版本的問題,查看brew install 的nasm的版本在/usr/local/bin/nasm -version和build中用到的nasm,發現版本不一致,rm當前的nasm,然後建立一個軟鏈接到新的nasm(sudo ln -s /usr/local/bin/nasm nasm)

 3)  再次編譯,注意需要make veryclean一下,可以不從頭開始編譯,但保險起見我選擇從頭編譯:make all -j16,使用多個線程來編譯,加快編譯效率。

 4) 再次報錯,這次居然是好多語法錯,提示Makefile.am中存在非法指令-D,到這裏其實應該會有意識的想到還是版本不匹配的原因,在Google上搜索錯誤,然後看到有的文件中有-D這個指令,有的只有-d,到現在只能大膽嘗試了:由於Makefile.in是由Makefile.am文件生成的,用vim打開後者,找到相關出錯變量出現的地方嗎,然後搜作-D,將其改爲-d,保存,再次編譯,通過!!!!(更新:在版本2.2.5當中,需要直接去掉-D這個參數; 2015.04.14)

 5)折騰了兩天的編譯終於結束了,下文進行第二部分,將linphone應用到自己的項目中。 

補充一下,在1)之前會提示安裝gettext,不要用brew install那個,要自己從網上下載安裝,make ; make install;


補充編譯2.2.5遇到的問題,1 是非法指令-D的問題,2 是在MakeFike裏設置的只編譯armv7和archar64這兩個關於蘋果手機系統版本的,不需要i386和x86_64(註釋掉)的intel系統下的。









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