View source for Toolchain/zh cn
From Openmoko
You do not have permission to edit this page, for the following reasons:
You can view and copy the source of this page:
Template used on this page:
Return to Toolchain/zh cn.
You do not have permission to edit this page, for the following reasons:
You can view and copy the source of this page:
Template used on this page:
Return to Toolchain/zh cn.
Languages: |
English • العربية • Български • Česky • Dansk • Deutsch • Esperanto • Eesti • Español • فارسی • Suomi • Français • עברית • Magyar • Italiano • 한국어 • Nederlands • Norsk (bokmål) • Polski • Português • Română • Русский • Svenska • Slovenčina • Українська • 中文(中国大陆) • 中文(台灣) • Euskara • Català |
工具链是一组用来编译代码的工具集,Openmoko有两类不同用途的工具链。
为了开发简单的单一应用程序,你可以使用针对Openmoko项目预先构建好的工具链。本文将说明这一工具链的使用方法,它将帮助你一步步的编译项目并最终运行在目标设备上。你应该听过OpenEmbedded,但作为开发此类应用程序的开发人员,你’’’不’’’应该使用OpenEmbedded。
针对系统集成和定制发行版的任务,你应该使用OpenEmbedded,它能通过bootstrapping/build流程建立起自己的交叉编译工具链。系统集成和定制发行版未在本文加以讨论。
熟悉Linux及其命令行工具是最基本的,你必须有一台x86兼容的、最少有1G磁盘空间的电脑。你也必须要有使用本地编译器来编译程序源码的相关操作经验。同时,假设你有home目录(~)和/usr/local/目录(有需要时,需使用root用户来操作)的写权限。如果你没有上述的权限,请与管理员联系。
你至少应该具有使用安装程序的权限,允许你使用自动工具构建软件包。(比如./configure, make, make install)。
需要安装的部分软件如下:
sudo apt-get install gcc g++ autoconf automake binutils libtool libglib2.0-dev ccache libxrender-dev intltool
预构建的工具链可以从 [downloads.openmoko.org]下载:
mkdir ~/sources cd ~/sources
wget http://downloads.openmoko.org/toolchains/openmoko-x86_64-arm-linux-gnueabi-toolchain.tar.bz2 or wget http://downloads.openmoko.org/toolchains/openmoko-i686-arm-linux-gnueabi-toolchain.tar.bz2
接着,要将它解压缩到文件系统。注意:此软件包必须安装到且会自动安装到/usr/local/openmoko/目录。
cd / tar -xjvf ~/sources/openmoko-XYZ-arm-linux-gnueabi-toolchain.tar.bz2
bunzip2 openmoko-x86_64-arm-linux-gnueabi-toolchain.tar.bz2 gzip openmoko-x86_64-arm-linux-gnueabi-toolchain.tar fakeroot alien -d openmoko-x86_64-arm-linux-gnueabi-toolchain.tar.gz
bitbake meta-toolchain-openmoko
最后,每次使用此工具链时,必须先改变环境变量,这样才会找到此工具链。此工具链提供了一个脚本来做这项工作。
请注意,如果你并没有使用"sh" 或"bash" shell (用"echo $SHELL" 查看) ,那你必须先启动"sh" 或"bash"。
. /usr/local/openmoko/arm/setup-env
在目标文件夹中 (本文为~/):
cp -r /usr/local/openmoko/source/openmoko-sample2 ~/
. /usr/local/openmoko/arm/setup-env
om-conf openmoko-sample2
cd openmoko-sample2 make
如果你希望在主机上安装这个程序,作为后续使用的共享库,那么你可以进行如下操作来将它安装到指定目录中:
om-conf --prefix=/usr/local/openmoko openmoko-sample2 cd openmoko-sample2 make install
为了要使用Openmoko-sample2 文件来制作你自己的项目,需要做适度修改:
cp -r /usr/local/openmoko/source/openmoko-sample2 ~/
mv openmoko-sample2 your-project-name cd your-project-name cd src rm *.c
cp your-sources . cd ..
PKG_NAME="your-project-name"
AC_INIT(your-project-main, 0.0.1, http://www.openmoko.org/) AC_CONFIG_SRCDIR(src/main.c)
cd data mv openmoko-sample.png your-project-name.png mv openmoko-sample.desktop your-project-name.desktop
dist_desktop_DATA = your-project-name.desktop dist_appicon_DATA = your-project-name.png
dist_desktop_DATA = smart-search.desktop dist_appicon_DATA = smart-search.png
Name=your-project-name Encoding=UTF-8 Version=0.0.1 Type=Application Exec=your-project-name
Icon=your-project-name
cd .. cd src
bin_PROGRAMS = your-project-name your_project_name_SOURCES = \ main.c your_project_name_LDADD = @DEPENDENCIES_LIBS@
工具链中有一个脚本用来将应用程序制作为ipkg包。请注意,你并不需要在Neo手机上测试此应用程序 ( 若要在Neo手机上测试此应用程序,只需要使用scp将生成的二进制代码和数据传送到手机上即可),打成ipkg包也是为了方便发布给他人。
om-make-ipkg openmoko-sample2
现在你已经得到了openmoko-sample2_0.1_armv4t.ipk ,你可以使用"scp"将它传输到Neo手机并安装:
scp openmoko-sample2_0.1_armv4t.ipk root@192.168.0.202: ssh root@192.168.0.202 ipkg install openmoko-sample2_0.1_armv4t.ipk
请注意:这个ipkg包并未包含控制信息,例如函数库的依赖关系,所以,如果你想分发此ipkg包,应该加入控制信息文件。你可以在控制信息文件中提供版本号、软件包描述、作者和联系方式等:
om-make-ipkg myapp myapp_control
myapp_control的模板如下:
Package: $appname Version: 0.1 Description: package built by openmoko toolchain Section: openmoko/applications Priority: optional Maintainer: $USER Architecture: armv4t Homepage: http://www.openmoko.org/ Depends: Source: ${SRC}
使用外部工具链来为Neo构建应用程序比较简单。如果你熟悉这个流程的话,你也会想要参考:
向src/Makefile.am文件的 _LDADD 字段加入必要的链接库,示例如下:
openmoko_sample2_LDADD = @DEPENDENCIES_LIBS@ -lmokogsmd2
之后,请再次运行
om-conf
不久之后,你也许想要编译一个应用程序,这个应用程序依赖于生僻的函数库,而这些函数库并未由预编译的工具链提供。
这种情况下,你可以请求将附加的函数库放入下一版本的OpenMoko工具链,而在那之前,你可以通过如下方式增强现有的工具链。这里演示了如何向工具链中加入一个名为liburiparse的函数库:
cd ~/source wget http://downloads.sourceforge.net/uriparser/uriparser-0.6.0.tar.bz2 ./configure --host=arm-angstrom-linux-gnueabi --prefix=/usr/local/openmoko/arm make make install
当你编写了一个很酷的应用程序并想与他人分享,最佳方法是
您也可以参考 定制化你的OpenMoko发行版.