1. 下载qt-embedded-linux-opensource-src-4.4.2.tar.bz2 下载Qtopia Core 4 的源代码,建议到www.qtopia.org.cn 下载
2. # tar zxvf qtopia-core-opensource-src-4.2.2.tar.gz
# cd qtopia-core-opensource-src-4.2.2
# ./configure -embedded arm -xplatform qws/linux-arm-g++ -depths 4,8,12,16 -no-qt3support
# gmake ( 这个过程最漫长...)
# gmake install ( 需root 权限)
大小端选择,选择小端,即低地址存放低字节,高地址存放高字节。
3. 修改qt-embedded-linux-opensource-src-4.4.2/mkspecs/qws/linux-arm-g++/qmake.conf文件修改其中的交叉编译链路径。
4. 把qtopia-core-opensource-src-4.2.2 的库放入制作的根文件系统的/lib 之中
安装好的Qtopia 在目录/usr/local/Trolltech/QtopiaCore-4.2.2-arm 下,进入其目录。可以看到/lib 文件,其中包括一个fonts 文件夹,里面是一些字体,内容很多也很占空间(72M 左右) ,因为我们的目标板一般flash 很小,64M 左右,所以我们只选用很常用或者自己觉得好看的字体放入。
首先在/ 建立一个文件夹——Qtopia ,里面存放入库和字体文件的fonts 文件夹,
# cd /usr/local/Trolltech/QtopiaCore-4.2.2-arm
# mkdir Qtopia
然后把/lib 下的文件复制到其中
# cp – arf /usr/local/Trolltech/QtopiaCore-4.2.2-arm/lib/* /usr/local/Trolltech/QtopiaCore-4.2.2-arm/Qtopia
删掉多余的字体文件
# cd /usr/local/Trolltech/QtopiaCore-4.2.2-arm/Qtopia/fonts
只留下cour.pfa 和 cursor.pfa
最后把Qtopia 拷贝到刚刚我们做好的文件系统的/lib 下面
# cp – arf /usr/local/Trolltech/QtopiaCore-4.2.2-arm/Qtopia /rootfs/lib
5. 设置环境变量
在文件系统中,关键要设置环境变量,才能让Qt4 的程序找到我们移植的Qt4 的库,真正跑起来。设置环境变量可分两种,与PC 机上一样,可以在命令行下设置,还有一种方法是在/etc/profile 文件中设置,让开发板一启动就自动设置,添加命令如下:
PATH=/usr/bin:/usr/sbin:$PATH:./
export FRAMEBUFFER='/dev/fb/0'
export TSDATAFILE='/mnt/yaffs/minigui/tsdata.dat'
export LD_LIBRARY_PATH =/lib:/usr/lib:/usr/lib/Qtopia :$LD_LIBRARY_PATH
export QWS_DISPLAY ="LinuxFb:mmWidth100:mmHeight130:0"
关键是LD_LIBRARY_PATH , 这个设置让系统知道Qt 的库的位置,即/usr/lib/Qtopia ,还有一个关键是QWS_DISPLAY ,因为我们在运行程序时,有一个参数是qws ,例如:./analogclock – qws ,设置好QWS_DISPLAY 后才能在显示屏上显示按我们要求比例大小的图像。
6. 测试代码
进入/usr/local/Trolltech/QtopiaCore-4.2.2-arm/examples/tutorial/t1
# cd /usr/local/Trolltech/QtopiaCore-4.2.2-arm/examples/tutorial/t1
# qmake -project
# qmake
# make
生成二进制文件t1 ,通过适合的方式拷贝到文件系统中,执行 ./t1 – qws 可以显示 helloworld