在上一篇文章中,运行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的含义是可以访问受限的代码。