qtopia-opensource-4.2.2在arm上的移植

来源:互联网 发布:淘宝管制刀具认定标准 编辑:程序博客网 时间:2024/06/02 20:54
       
        Qtopia Core 4是QT/embedded的最新版,网上找很久都没有相关教材,尽是QT/embedded 2的版本。我刚学,干脆就直接上最新版 ^_^ 费了不少时间,作个记录,方便有需要的朋友...
        我的目标平台是三星的s3c2410,linux2.4内核,研发平台是RHEL.AS.v4.0.Update2,直接从ftp: //ftp.scau.edu.cn/linux_unix/VMware_OS/RedHat_AS_4/Red Hat Enterprise Linux 4.vmdk下载的虚拟机映像。经过这三天的使用,我认为虚拟机构建的系统有两个特点:一是慢,编译整个Qtopia Core 4用了近五个小时,而真机只需一个半钟;二是使用方便,能够直接在windows通过pietty连接,一边查资料,一边配置系统,而且工作环境改变时只需将映像直接移到另外一台电脑,马上能够工作 ^_^
下面是Qtopia Core 4移植过程:
        1.  下载交叉编译链
ftp://ftp.handhelds.org/projects/toolchain/arm-linux-gcc-3.4.1.tar.bz2
。不要用cross-2.95.3,Qtopia Core 4指明要3.2以上的版本。网上的教程大多就拿cross-2.95.3编译QT/embedded 2的...解压缩到/usr/local/arm目录下
tar xjvf linux-gcc-3.4.1.tar.bz2 -C /
配置交叉编译的环境变量:
echo 'export PATH=/usr/local/arm/3.4.1/bin:$PATH' >> /root/.bashrc
        2.  下载Qtopia Core 4的源代码,建议到
www.qtopia.org.cn
下载,速度比
www.trolltech.com
快,迅雷速度就不错。我下的是
qtopia-core-opensource-src-4.2.2.tar.gz
,解压
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 权限)
配置Qt的环境变量:
echo 'export PATH=/usr/local/Trolltech/QtopiaCore-4.2.2-arm/bin:$PATH' >> /root/.bashrc
这样更有一个字体目录的问题,搞了很久才找到原因,后面讲述。
        3.  编译Hello World,代码参考Qt的文档,保存未 hello.cc 。
qmake -project
qmake
make
将文档移到目标平台,我是通过nfs mount到/mnt/nfs目录下
mount -t nfs -o nolock 202.192.33.100:/home/nfs /mnt/nfs
export QTDIR=/mnt/nfs
export LD_LIBRARY_PATH=$QTDIR/lib
$QTDIR/lib里面放程式要用到的库和字体
lrwxrwxrwx  1 root root      18 Jan 25 20:39 /home/nfs/new/lib/libQtCore.so.4 -> libQtCore.so.4.2.2
-rwxr-xr-x  1 root root 2082044 Jan 25 20:38 /home/nfs/new/lib/libQtCore.so.4.2.2
lrwxrwxrwx  1 root root      17 Jan 24 21:44 /home/nfs/new/lib/libQtGui.so.4 -> libQtGui.so.4.2.2
-rwxr-xr-x  1 root root 7100212 Jan 24 21:42 /home/nfs/new/lib/libQtGui.so.4.2.2
lrwxrwxrwx  1 root root      21 Jan 25 20:36 /home/nfs/new/lib/libQtNetwork.so.4 -> libQtNetwork.so.4.2.2
-rwxr-xr-x  1 root root  369700 Jan 25 20:35 /home/nfs/new/lib/libQtNetwork.so.4.2.2
        能够根据提示从/usr/local/Trolltech/QtopiaCore-4.2.2-arm/lib/复制过来,注意软链接。如提示缺失libstdc++.so.6等库文档,可从/usr/local/arm/3.4.1/arm-linux/lib复制过来。
        最后一个问题就是刚才提到的字体问题。网上的教程都是说将fontdir放到$QTDIR/lib/fonts目录下即可。但我编译的这个版本总不行,提示 Cannot find font definition file /usr/local/Trolltech/QtopiaCore?
        尝试多次后才发现这个目录就是QtopiaCore的安装目录。创建一个软链接搞定
ln -s /mnt/nfs /usr/local/Trolltech/QtopiaCore-4.2.2-arm
        文档提示能够用-prefix 指定安装目录,但这也不是办法,configure --help里相关的更有-R和-rpath,能够指定链接库位置。只是虚拟机太慢,现在不敢随便乱make了。
没想到一个 Hello World 用了3天......

转自:
http://blog.chinaunix.net/u1/36490/showart_478131.html
原创粉丝点击