Qt 黑白棋分別在linux 字元介面和arm機下運行

來源:互聯網
上載者:User

 API常用版本:
QtopiaCore --X86 、Qt-X11、 Qt-windows
linux文字介面下用QtopiaCore—X86
linux圖形介面下Qt-X11
windows下用Qt-windows

後兩者直接安裝就能用了,沒什麼可說的

   

現在試試QtopiaCore--X86(可預設)在linux 字元介面下運行Qt程式

 

編譯

# ./configure -embedded x86 -qvfb -no-openssl

# make

# make install

 

之後先設定好環境變數:預設安裝路徑 /usr/local/Trolltech/QtopiaCore-4.3.5
# vi .bash_profile
在原有的PATH 之前加上新增進的Qtopiacore的環境變數,這樣系統在原有的QtX11之前先找到Qtopiacore的環境變數
,所以就運行了Qtopiacore的命令,而不會運行下面的QtX11命令
注意事項:退出vi 時若以 “:X”方式退出,將會導致source .bash_profile 出錯

QtopiaCore運行命令:
# qmake -project
# qmake
# make
# ./gameboard  -qws
其中 qws 代表程式以伺服器的形式運行;

但是現在機器不是伺服器,怎麼辦呢?
解決:

先運行一個終端模擬器,鍵入命令
# qvfb
即可,qvfb 可執行程式 可在 QtX11/opensource 下找到,可把qvfb 拷到 /usr/bin 下,這樣就可執行 qvfb 命令了

  

或是把現在系統啟動並執行圖形介面改成字元介面,操作如下:
# vi /etc/inittab
把第18行 的 “id:5:initdefault:”預設值由“5” 改成 “3”,即把預設的系統圖形介面改成字元介面
# vi /boot/grub/grub.conf
把15行改成 kernel /vmlinz-2.4.20-8 ro root=LABEL=/ vga=0x314 ,即設定螢幕解析度

重啟系統,即可進到字元介面
運行命令
# ./gameboard -qws
即可。

Qt移植到arm 板上:

 

用 QtopiaCore-4.3.5-arm ,它一般可用以下兩種方法實現

 

編譯

# ./configure -embedded arm

# make

# make install

 

方法1:
首先設定好環境變數,預設安裝路徑 /usr/local/Trolltech/QtopiaCore-4.3.5-arm:
# vi .bash_profile
1.在原有的PATH 之前加上新增進的Qtopiacore-arm/bin的環境變數
2.進到要移植到 arm 板上的原始碼的檔案夾,鍵入命令
# qmake -project
# qmake
# make
# file gameboard     //查看檔案是否是用QtopiaCore-4.3.5-arm 編出來的
3.把編譯好的可執行檔傳到arm 板上,運行,這時 arm 上提示缺少什麼庫檔案,就加進相應的庫檔案,直到成功。
這時要注意:

     a . 有些庫檔案可能是連結檔案,我們這時只需要把連結指向的最終檔案傳到arm上,在 arm 終端下鍵入命令
     # ln  -s <連結檔案指向的最終檔案名稱> <連結檔案名稱> 
     即可建立一個軟連結。
     b . 一定要新增環境變數,執行命令
     # export LD_LIBRARY_PATH=/mnt/yaffs

     c .arm 板上除了yaffs目錄,其它目錄是不可寫的,但確實要往/usr/lib 或其它一些目錄添進東西,這時可通過命令掛  虛擬內容

     # mount  -t  ramfs ramfs /usr/lib

方法2:

此方法是常用的移植方法
1. 取得一個 準備往 arm 板上燒寫的 根檔案系統 root.cramfs
2. 下載一個cramfs.tar.gz 的mkcramfs 和 cramfsck 命令的壓縮包,解壓,make,把其中的mkcramfs 和 cramfsck可執行程式
    拷到/usr/bin 下
3. 查看鏡像檔案,鍵入命令
   # cramfsck -x <目標檔案>  <源鏡像檔案>  如 # cramfsck -x rootfs rootfs.cramfs
4. # cd rootfs  進到目標檔案
5. 開啟另一終端,在原有的PATH 之前加上新增進的Qtopiacore-arm的環境變數,進到要移植的原始碼的檔案夾,鍵入命令
   # qmake -project
   # qmake
   # make
   即用Qtopiacore-arm產生一個(我的是叫)gameboard 的可執行程式
6. 鍵入命令查看產生的gameboard 的可執行程式是否是用來運行在 arm 板上的
   # file gameboard
7. 把產生的gameboard拷到 rootfs  的目標檔案下的 home 目錄下
8. 運行命令,查看在 arm 板運行gameboard 可執行程式 需要什麼庫支援
   # arm-linux-readelf -a gameboard | grep Shared
9. 把步驟8查到的所需的庫檔案加到rootfs  的目標檔案下的 lib 目錄下
10. 運行命令,把 rootfs  的目標檔案做成rootfs.cramfs的根檔案系統的鏡像檔案

   # mkcramfs  rootfs  rootfs.cramfs
11. 把rootfs.cramfs的根檔案系統的鏡像檔案重新燒寫到 arm 板上
12. 運行

      # ./gameboard  -qws

      其中qws 表示以圖形視窗伺服器的形式運行

     注意:預設的幀緩衝(framebuffer)是/dev/fb0,若沒有的話,自己到/dev下用命令建立一個軟串連,如下

      # cd /dev

      # ln -s fb/0 fb0

 

附:具體燒寫根檔案系統的方法可參考《交叉編譯環境的建立》

http://blog.csdn.net/xiaozhi_su/archive/2009/03/21/4011311.aspx

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.