accross compile QT4.43

 1步:安裝許可證文件(商業版只)

如果你有商業版的Qt嵌入式Linux ,第一步是要安裝您的授權文件作爲的$ HOME / .qt許可。

開源版本則不需要許可證文件。

2步:打開存檔

首先解壓縮檔案中的首選位置,然後打開它;

cd <anywhere>

 gunzip qt-embedded-linux-commercial-src-4.4.3.tar.gz

tar xf qt-embedded-linux-commercial-src-4.4.3.tar

tar –zxvf armtools.tar.bz2  //這個是交叉編譯工具鏈

該文檔假定檔案解在以下目錄:

~/qt-embedded-linux-commercial-src-4.4.3

配置交叉編譯工具:

Export PATH=/armtools路徑/bin:$PATH

3步:交叉編譯編譯庫

在建設的Qt嵌入式Linux庫,運行。 / configure腳本來配置庫的發展結構。您可以列出所有的配置

系統的選擇輸入。 / configure的幫助。

請注意,默認情況下, Qt的嵌入式Linux配置安裝在/ usr/local/Trolltech/QtEmbedded-4.4.3目錄,

但可以改變使用前綴選項。另外,前綴安裝選項可以用來指定一個“地方”安裝的源目錄。

配置系統的另一個目的是讓您指定您的平臺架構:

 cd  ~/qt-embedded-linux-commercial-src-4.4.3

 ./configure -embedded [architecture]

一般情況下,所有的Linux系統有framebuffer支持可以使用的通用架構。其他典型的架構是的x86 ARMMIPS

下面是我配置時用的選項:

./configure -embedded arm -xplatform qws/linux-arm-g++ -qt-libpng -qt-gfx-linuxfb -qt-gfx-qvfb -qt-gfx-vnc -qt-gfx-transformed -qt-gfx-multiscreen -qt-kbd-usb –libdir /lib

 

注意:如果您想建立的Qt嵌入式Linux使用一個虛擬的framebuffer,通過- qvfb選項給configure腳本,另外 上面的命令選項 –libdir 選項是指編譯後程序搜索庫的路徑,更多的選項可以參考 ./configure –h 查看配置選項。

 

要創建庫和編譯所有的demos, examples, tools,tutorials,請鍵入:

Gmake

在編譯完成之後可以不必安裝(make install,我們僅僅是需要其交叉編譯生成的庫文件和其bin目錄下生成的編譯工具。

4步:搭建NFS環境

將文件系統解壓到/fs

配置NFS文件 /etc/exports

內容:/fs *(rw,sync,no_root_squash,anonuid=0,anongid=0)

這裏一定要設置後面的選項,否則開發板上通過NFS啓動時候,會以匿名用戶登陸,而QT程序運行需要root權限。

將第三步生成t-embedded-linux-commercial-src-4.4.3/lib目錄的庫文件拷貝到NFS中的/fs/lib目錄下,這裏可能還需要一些交叉編譯工具裏面的庫,可以在需要的時候拷貝過來。

第五步:測試

1、先測試framebuffer

先保證內核已經加入framebuffer選項並編譯今內核。測試程序在

qt-embedded-linux-commercial-src-4.4.3/example/qws/framebuffer/目錄下。

如何出現紅綠藍三個矩形。則說明framebuffer可用正常使用。

2、在QTEdemos 目錄下有演示程序,編譯後拷貝到NFS目錄中,這裏要保證環境變量的設置,保證所需要的qmake make 等命令是指向qt-embedded-linux-commercial-src-4.4.3/bin目錄下的命令,

3、在開發板上執行程序

 ./程序名 –qws 

這個-qws是必須要選的,這是保證QT程序是以server方式運行的,還可以有其他的選項,例如:-fn 字體選項, -bg 背景色選項 –display 顯示選項。

詳細的可以參考其源碼包中的qt-embedded.html 這個文件。

 

說明:在開始時,NFS沒有配置爲以root權限登陸,在創建/tmp下的創建的文件將是以匿名用戶創建,而QT程序是需要root 用戶組權限執行的,在將庫裁剪後文件系統燒寫到開發板上則不存在這個問題;

 

ps:在拷貝庫文件時要用 -avfd參數 以保證拷貝過來的庫文件屬性不變,如要將文件系統燒寫到目標板上,則需要先裁剪庫,

   這是我的NFS的配置文件內容:

   

 

 

/fs *(rw,sync,no_root_squash,anonuid=0,anongid=0)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章