Helix移植(三)編譯目標程序

在上一篇文章中,運行build腳本後,出現選單,按照選單提示選擇3,即可開始編譯程序了。不過在編譯程序之前,對其中的各選項的含義還是需要了解一下,下面就介紹個選項的含義。

首先,選項[0] Set BIF branch (helix)就是選擇代碼分支,使用過配軟件置管理系統的tx應該都知道,軟件開發中一般有一個主幹和若干分支,缺省值helix就表示獲得主幹分支上的最新代碼。一般而言,主幹上的最新代碼功能最齊全,但可能未經過充分的測試,所以如果是應用在產品中,最好選擇一個穩定分支的代碼。如果是開發客戶端應用程序的話,目前最穩定的分支是hxclient_3_1_0_atlas,如果是restricted帳號的話,就選擇hxclient_3_1_0_atlas_restricted。

其次,選項[1] Set Target(s) (splay_mp3)就是選擇編譯目標。何謂編譯目標?就是您希望編譯一個命令行播放器、一個GUI播放器還是一個插件。編譯目標可幾百種,您需要根據自己的需要選擇一個。比如缺省值splay_mp3就是編譯一個僅支持mp3的命令行播放器。我在項目中選擇了splay,它會編譯出一個全功能的基於命令行播放器。

接下來,選項[2] Set Profile (default)就是選擇profile,要理解profile的含義,我們可以到$BUILD_ROOT/umakepf下去看對應的pf文件,裏面其實就是若干宏定義,用於定製編譯目標,也就是所謂的可裁剪,比如說是否支持ARM MMX、是否支持某種解碼器等等。我在項目中選擇的是helix-client-mobile-noX11。

其它的選項暫時可以不予理會,如果選擇3,這時構建系統就會根據所選擇的分支,目標及profile下載相應的代碼,並進行編譯。如果只想checkout代碼,不編譯代碼的話,可以選擇[11] Checkout source for selected target now。

checkout代碼並進行編譯是一個比較漫長的過程,helix網站速度比較慢,往往checkout一次代碼需要幾個小時,需要耐心等候。當然編譯過程也不會一帆風順,有錯誤出現是難免的,造成錯誤的原因有權限不夠,代碼沒下全,另外一個原因是代碼非常龐大,開發和維護的人員有限,錯誤是難免的,這時就需要見招拆招了。以下是我的編譯結果:

Build complete in 30:28, 12 of 169 modules failed.

有12個模塊出現編譯錯誤,我們可以打開build.out文件查看編譯日誌,我們的主要目標splay編譯出來了,出錯的是一些解碼器,暫時不影響播放,可以不理會。至此,一個能在手機上運行的播放器就出來了,雖然沒有圖形界面,但它確實能夠播放rm, rmvb, mp3, mp4等格式文件,還支持rtsp,http協議流媒體。接下來所要做的是集成到我們的應用程序中了。

 

注:在helix中,restricted帳號權限比normal帳號權限高,這裏的restricted的含義是可以訪問受限的代碼。

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