1. 程式人生 > >QT4.5.3移植到hi3536

QT4.5.3移植到hi3536

QT版本:qt-embedded-linux-opensource-src-4.5.3
1、新增交叉編譯
(1)copy qt-embedded-linux-opensource-src-4.5.3/mkspecs/qws/linux-arm-g++ 到 qt-embedded-linux-opensource-src-4.5.3/mkspecs/qws/linux-hisiv400-g++
(2)修改linux-hisiv400-g++/qmake.conf檔案,把arm-linux替換成arm-hisiv400-linux
以下可以不用操作!!網文,感覺都是遮蔽一下應程式,而沒有真正的減少qt庫的大小,可以自己裁剪。
2、遮蔽不必要的庫,網文如此描述,其實遮蔽不遮蔽這些庫都沒關係,遮蔽就是把庫變小一點,嵌入式儲存空間有限。甚至還可以進一步裁剪QT,讓庫更小。
(1)(記得備份)修改的qt-embedded-linux-opensource-src-4.5.3/examples目錄下的examples.pro,遮蔽如下:去掉瀏覽器核心開發sample,不需要
#contains(QT_CONFIG, webkit): SUBDIRS += webkit 
(2)修改/qt-embedded-linux-opensource-src-4.5.3/demos目錄下的demos.pro 遮蔽如下:去掉瀏覽器核心開發demo,不需要
#contains(QT_CONFIG, webkit):contains(QT_CONFIG, svg):SUBDIRS += demos_browser
3、
執行./configure -help ,檢視我們需要設定那些選項。
-prefix 定義安裝目錄,可選(不選預設在/usr/local/Trolltech/QtEmbedded-4.5.3)
挑幾個來說一下:
//定義生成的是.so還是.a庫
 *  -shared ............ Create and use shared Qt libraries.(預設)
    -static ............ Create and use static Qt libraries.


//定義qt是否支援訪問超過4GB的檔案,看專案需求
    -no-largefile ...... Disables large file support.(預設)
 +  -largefile ......... Enables Qt to access files larger than 4 GB.
 //定義是否編譯STL。
     -no-stl ............ Do not compile STL support.(預設)
 *  -stl ............... Compile STL support.
 //是否編譯瀏覽器核心模組
  -no-webkit ......... Do not build the WebKit module.
 +  -webkit ............ Build the WebKit module.
 
 //是否支援編譯OpenSSL
     -no-openssl ........ Do not compile support for OpenSSL.
 +  -openssl ........... Enable run-time OpenSSL support.
    -openssl-linked .... Enabled linked OpenSSL support.

下面看嵌入式專屬的配置
//目標平臺
 -xplatform target ... The target platform when cross-compiling.
 
 // arm
-embedded <arch> .... This will enable the embedded build, you must have a
  proper license for this switch to work.
  Example values for <arch>: arm mips x86 generic
//CPU是大端還是小端 arm和x86 小端, mips大端。  
 -little-endian ...... Target platform is little endian (LSB first).
    -big-endian ......... Target platform is big endian (MSB first).


// 是否字型庫的設定
 -no-freetype ........ Do not compile in Freetype2 support.
 -qt-freetype ........ Use the libfreetype bundled with Qt.
 
具體:
./configure --prefix=/home/liqinghan/qt-embedded-linux-opensource-src-4.5.3/hisi_qt_install -no-pch -xplatform qws/linux-hisiv400-g++ -arch arm -embedded arm -no-freetype -qt-mouse-pc -no-webkit -no-largefile -fast -release -no-qt3support -no-cups  -no-opengl -no-phonon -phonon-backend -no-scripttools -no-libtiff -no-gif -no-libmng -no-nis -no-cups -no-svg


Type 'c' if you want to use the Commercial Edition. //非開源
Type 'o' if you want to use the Open Source Edition.//開源


#o


This is the Qt for Embedded Linux Open Source Edition.


You are licensed to use this software under the terms of
the Lesser GNU General Public License (LGPL) versions 2.1.
You are also licensed to use this software under the terms of
the GNU General Public License (GPL) versions 3.


Type '3' to view the GNU General Public License version 3.
Type 'L' to view the Lesser GNU General Public License version 2.1.
Type 'yes' to accept this license offer.
Type 'no' to decline this license offer.


#yes

編譯完畢後!就會在hisi_qt_install下生成demo程式

注意修改:修改hifb,使用hifb0的ARGB8888的模式,以及非編碼的模式,然後執行sample_hifb

掛在QT到root/test/目錄下:
執行如下:
export QT_INSTALL_PATH=/root/test/qt-embedded-linux-opensource-src-4.5.3/hisi_qt_install
export LD_LIBRARY_PATH=/lib:/usr/lib:${QT_INSTALL_PATH}/lib:${LD_LIBRARY_PATH}
export QT_QWS_FONTDIR=${QT_INSTALL_PATH}/lib/fonts
export QT_QWS_DISPLAY=linuxFB:/dev/fb0

./xxxx -qws
服務程式執行時:
./mysecondserverapplication -qws -display "QVFb:2"
客戶程式執行時:
./myclientapplication -display "QVFb:2"


若想在不同顯示器移動應用程式,則只能通過Muti顯示器實現。
./myserverapplication -qws -display "Multi: QVFb:0
QVFb:1:offset=0,0 VNC:offset=640,0 :2"


程式啟動命令選項:
-fn<font>         定義程式的字型,例如./myapplication -fn helvetica


-bg<color>                設定程式預設背景顏色 例如./myapplication -bg blue,顏色名稱必須能被QColor類建構函式識別


-btn<color>                設定預設的按鈕顏色,例如./myapplication -btn green 同樣顏色必須被認識


-fg<color>                設定foreground顏色,例如./myapplication -fg 'dark blue' 同上需被認識


-name <objectname>    設定應用程式名字 例如./myapplication -name texteditapplication


-title <title>        設定應用程式標題。./myapplication -title 'Text Edit'


-geometry <width>x<height>+<Xoffset>+<Yoffset>
設定視窗大小, ./myapplication -geometry 300x200+50+50


-keyboard                    啟動鍵盤


-nokeyboard                關閉鍵盤


-mouse                        啟動滑鼠


-nomouse                    關閉滑鼠


-qws                            設定為服務程式


-display                    設定顯示器驅動

-decoration<style>
設定程式的風格,例如./myapplication -decoration windows,只支援windows default styled

剩下的就是QT介面簡單的開發了,試運行了demos裡面的幾個APP,使用的引數是-qws 和 -fn helvetica 感覺速度流暢,滑鼠操作不卡頓。

http://download.csdn.net/download/liqinghan/10218920