close

呼呼,在寫這篇之前,上網看到....Qt 公司在三月3號發佈了 4.5版...哇咧,吐血~~我昨天編touch功能是三月6號..嗚嗚,delay了四天才知道,囧 了~

不過,我也抓下來編譯完成了,編譯方法其實大同小異,很快就成功並加入了觸控功能了!

 

============================================================

QT-Embedded 加入觸控功能

 

因為Qt要有觸控功能必須以tsliblibinclude兩個檔案為依據,才能讓編譯出來的Qt具有觸控的功能,因此分為兩個部分作:

1、編譯tslib觸控套件

2、編譯Qt

 

作業環境:Ubuntu 8.10

 

一、編譯tslib

套件名稱:tslib-1.0.tar.bz2

1先切換到工作資料夾下,下載此檔

指令$ wget http://prdownload.berlios.de/tslib/tslib-1.0.tar.bz2

 

2下載完成後,解壓縮檔案

指令$ tar jxvf tslib-1.0.tar.bz2

 

3解壓縮完成後,會出現tslib-1.0的資料夾,切換至資料夾底下

指令$ cd tslib-1.0

 

4在編譯tslib之前,需先安裝automakelibtool兩個套件。

指令$sudo apt-get install automake libtool

 

5執行autogen.sh

指令$ ./autogen.sh

 

指令執行完成後,會產生 configure 檔,以便用於組態tslib

 

6組態tslib

指令$ ./configure -prefix=/home/maxron/workSpace/tslib/ CC=arm-unknown-linux-gnueabi-gcc CXX=arm-unknown-linux-gnueabi-g++ -host=arm-linux ac_cv_func_malloc_0_nonnull=yes

 

1

-prefix=/home/maxron/workSpace/tslib/ 這行參數是當你編譯完成後,使用make install安裝的路徑,所以當我編譯完成,利用 make install 它便會安裝至/home/maxron/workSpace/tslib/ 資料夾中。

 

2

ac_cv_func_malloc_0_nonnull=yes 若無此指令而做組態的話,會出現rpl_malloc未定義的錯誤,解法有兩種:

(1)configure.ac內的AC_FUNC_MALLOC註解掉,然後重新執行autogen.sh產生新的configure,之後再重新進行configure 指令

(2)
在執行configure時,設定環境變數ac_cv_func_malloc_0_nonnull=yes

 

因此,我採用第二種方法,在組態時加入ac_cv_func_malloc_0_nonnull=yes參數

 

7 組態完成後,沒出現錯誤,便可以開始編譯了,為了避免出現錯誤,先切換到root

指令$ su

之後輸入密碼。切換至root模式後,就可以下make指令了

指令$ make

 

8編譯完成後,安裝tslib

指令$ make install

 

再剛剛的組態時,便指定了安裝路徑,因為檔案將會安裝到/home/maxron/workSpace/底下,而資料夾名稱為tslib/,切換至裡面看的話,會有binetcincludelib四個子資料夾。其中libinclude這兩個資料夾,將是用來編譯Qt 觸控功能的lib

 

二、編譯Qt

 

1編譯Qt的話,可參考上一篇,步驟大致無上差別,只需在做Qt configure 時,需加入參數。

指令$ ./configure -embedded arm -qt-zlib -qt-libpng -qt-gif -qt-libtiff -qt-libmng -qt-libjpeg -qt-freetype -no-openssl -qt-mouse-tslib -L /home/maxron/workSpace/tslib/lib -I /home/maxron/workSpace/tslib/include

 

-L參數指定lib-I參數指定include

 

2,再來的步驟,就請參考Qt的編譯了!當編譯完成後,一樣移到開發版於本機上掛載的根檔案系統下。路徑為/data/target/usr/local/

將編譯好的Trolltech資料夾,移至/data/target/usr/local/底下。之後,設定環境變數。

指令

$ export QTDIR=/usr/local/Trolltech/QtEmbedded-4.4.3-arm
$ export PATH=$QTDIR/bin:$PATH
$ export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

$ export QWS_MOUSE_PROTO="tslib"

 

環境變數設定完成後,執行Qt的範例程式。測試是否具有觸控功能了!

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 maxron 的頭像
    maxron

    Zero_Maxima---水能淡性是吾友 竹解虛心是我師 ---

    maxron 發表在 痞客邦 留言(1) 人氣()