qtopia-opensource-4.2.2在arm上的移植

來源:互聯網
上載者:User

文章來源:http://weibing.blogbus.com/logs/4384745.html

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天......

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.