BLOG > Zaurus / ARM > 建立SmartQ5的编译环境

建立SmartQ5的编译环境

其实这篇文章应该是在今年2月就要发表的,后来一偷懒就忘掉了。好记性不如烂笔头,幸亏当时记下来了,否则现在又忘得光光的了。现在贴在Blog上,以后万一想不起来,检索起来也就方便了。

事情是这样开始的……(怎么跟说故事一样)话说SmartQ5这个玩意用起来还真不错,特别是做电子书。我这人有睡前看半小时书的习惯,之前的Zaurus现在的Q5,对于我来说,最喜欢的功能就是电子书了。可惜SmartQ5当时原系统的Firmware中带的fbreader阅读器的版本是0.8.17的,版本较低,虽然用着还算比较方便,但是和新的0.12.x的版本比起来,少了网络书屋等等功能,所以想自己编译一个新版本的。于是就自己费尽九牛二虎之力,用crosstool-ng搭建了一个交叉编译环境。不料某天在网上闲逛,看到了ubuntu的wiki上一篇文章,发现原来使用EABIchroot来搭建编译环境要方便得多(虽然编译速度稍微慢一些)。

在编译测试fbreader 0.12版本时,我发现fbreader在SmartQ5上的一些Bug,于是就与fbreader开发团队取得了联系,fbreader的Nikolay准备修复这些Bug,于是向我询问了为SmartQ5建立编译环境的方法,我就把我学来的使用EABI chroot建立编译环境的方法告诉了他。果然,没多久,为SmartQ5优化的fbreader出炉了:)

下面是使用linux创建SmartQ5编译环境的办法。

如果要在你的x86电脑使用 eabi chroot 来编译软件,必须先从软件仓库安装 qemu-arm-static 包。

# sudo apt-get update
# sudo apt-get install qemu-arm-static

然后使用内含的debootstrap包装脚本来创建 chroot 环境:

# build-arm-chroot karmic eabi-chroot
[sudo] password for ogra:
I: Retrieving Release
I: Retrieving Packages

...

I: Base system installed successfully.
arm-eabi chroot successfully created in eabi-chroot
# sudo chroot eabi-chroot
root@svr:/# uname -m
armv5tel

安装qemu chroot之后,输入如下命令修改chroot环境的软件仓库的源到arm源:

# sudo chroot eabi-chroot
# sudo vi /etc/apt/sources.list

将文件修改成如下内容:

# karmic 9.10
deb http://ports.ubuntu.com/ karmic main restricted universe multiverse
deb-src http://ports.ubuntu.com/ karmic main restricted universe multiverse

更新apt:

# sudo apt-get update

安装编译所需的 build-essential等软件包:

# sudo apt-get -y install build-essential libgtk2.0-dev

为了方便起见创建一个用于编译的环境变量文件 compile.env:

BASH代码:
  1. ############################################################
  2. #  Script to setup cross compile environment               #
  3. #  for ARM-gnueabi cross compile environment               #
  4. ############################################################
  5. #  Version     : 0.3                                       #
  6. #  Author      : Wells Wang <wellswang(at)osall(dot)com>   #
  7. #  Date        : 2009-11-13                                #
  8. #  Usage       : source my.env                             #
  9. ############################################################
  10.  
  11. export PREFIX=/usr/local
  12. export LD_LIBRARY_PATH=${PREFIX}/lib:/usr/lib:/lib
  13. export PKG_CONFIG_PATH=${PREFIX}/lib/pkgconfig:/usr/lib/pkgconfig
  14. export LD_RUN_PATH=${LD_LIBRARY_PATH}
  15. export CC=gcc
  16. export CXX=g++
  17. export AR=ar
  18. export RANLIB=ranlib
  19. export NM=nm
  20. export AS=as
  21. export LD=ld
  22. export STRIP=strip
  23. export READELF=readelf
  24. export STRINGS=strings
  25. export SIZE=size
  26. export ADDR2LINE=addr2line
  27. export GCJ=gcj
  28. export CFLAGS="-O2 -mtune=arm1176jzf-s -mcpu=arm1176jzf-s -I${PREFIX}/include -I/usr/include -mfpu=vfp -mfloat-abi=softfp"
  29. export CXXFLAGS=${CFLAGS}
  30. export CPPFLAGS=${CFLAGS}

以后如果要编译软件,在编译前可以使用如下命令导入编译环境参数:

# source compile.env

好啦,可以开始编译你要在Q5上使用的软件了。 Enjoy it~
如果您喜欢这篇文章,您可以点击下列链接收藏
Del.icio.us Yahoo书签 365Key网摘 天极网摘 我摘 POCO网摘 YouNote网摘 和讯网摘 博啦网
发布时间 发布于 2010-06-20 22:03:09 | 阅读次数 阅读过388次 | 分类 Zaurus / ARM | 评论 2条评论