QT4 的移植總結

2021-09-30 09:51:22 字數 4549 閱讀 4363

這段時間把qt4移植到了mini2440的開發板上,同時做了一些應用的開發,特總結一下。

首先要弄清楚一些概念:

1.什麼是qt?

qt 是乙個跨平台應用程式框架。通過使用 qt,您可以一次性開發應用程式和使用者介面,然後將其部署到多個桌面和嵌入式作業系統,而無需重複編寫源**。qt 軟體前身為 trolltech (奇趣科技),2023年6月被諾基亞收購。

2.qt的版本和分類?

qt 的版本是按照不同的圖形系統來劃分的,目前分為四個版本:

win32版,適用於windows平台;

x11版,適合於使用了x系統的各種 linux 和 unix的平台;

mac版,適合與蘋果macos;

embedded版,適合於具有幀緩衝(frame buffer)的linux 的平台

3.qtopia和qt的關係?

qt palmtop environment,是構建於qt/e之上乙個類似桌面系統的應用環境,包括了pda和手機等掌上系統常見的功能如**簿、日程表等。

qtopai後來改名為qt extended,2023年3月3日,nokia決定停止qt extended的後續開發,轉而全心投入qt的產品開發,並逐步會將一部分qtextended的功能移植到qt開發框架中。

qt-4.5.3的編譯與移植:

1.首先編譯安裝觸控螢幕驅動庫tslib-1.4?

1

2

3

4

./autogen.sh

./configure --prefix=/usr/local/qte-arm/tslib-1.4 --host=arm-linux ac_cv_func_malloc_0_nonnull=yes

make

sudo make install

這樣就可以在/usr/local/qte-arm/tslib-1.4目錄下看到相關的應用程式、共享庫、配置檔案等,這些庫和配置檔案都是要拷到arm板的根檔案系統中的。

2.編譯qt-embedded-linux-opensource-src-4.5.3?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

./configure -prefix /usr/local/qte-arm \

-no-qt3support \

-qt-zlib \

-qt-libtiff \

-qt-libpng \

-qt-libmng \

-qt-libjpeg \

-make libs \

-nomake examples \(不編譯例子程式和文件)

-nomake demos \

-nomake docs \

-no-nis \

-no-cups \

-no-iconv \

-xplatform qws/linux-arm-g++ \

-embedded arm \

-little-endian \

-qt-freetype \

-depths 8,16,24,32 \

-qt-gfx-linuxfb \

-no-gfx-transformed \

-no-gfx-qvfb \

-no-gfx-vnc \

-no-gfx-multiscreen \

-qt-kbd-usb \

-qt-kbd-tty \

-qt-mouse-pc \

-no-glib \

-qt-mouse-tslib -i/usr/local/qte-arm/tslib/build/include -l/usr/local/qte-arm/tslib/build/lib

編譯選項-qt-mouse-tslib需要用到觸控螢幕功能的動態庫,所以得把之前編譯安裝的tslib庫包含進來。

make

make install

這樣qt/e的編譯工作完成,主要是得到了qt程式在arm板上執行所需要的庫檔案,以及用於arm平台的qmake,moc,uic等工具。

3.拷貝相關檔案到arm根檔案系統

拷貝/usr/local/qte-arm/tslib整個目錄到arm板根檔案系統root_nfs/下;

拷貝/usr/local/qte-arm/lib/下所有庫檔案到root_nfs/opt/qt/lib目錄下,你可能不需要全部的庫檔案,可根據需要選擇;

4.設定環境變數和配置檔案

首先設定tslib的配置檔案  gedit root_nfs/tslib/build/etc/ts.conf?

1

2

3

4

5

module_raw input

module pthres pmin=1

module variance delta=30

module dejitter delta=100

module linear

然後設定qt及tslib的環境變數: gedit root_nfs/etc/profile

在最後加入:?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

export qtdir=/opt/qt

export t_root=/tslib/build

export path=$t_root/bin:$path

export ld_library_path=$t_root/lib:$qtdir/lib

export tslib_consoledevice=none

export tslib_fbdevice=/dev/fb0

export tslib_tsdevice=/dev/input/event0

export tslib_plugindir=$t_root/lib/ts

export tslib_conffile=$t_root/etc/ts.conf

export tslib_calibfile=/etc/pointercal

export qws_keyboard=usb:/dev/input/event1

export qws_mouse_proto=tslib:/dev/input/event0

export qws_display=linuxfb:mmwidth45:mmheight60:0

export qws_size=240x320

重啟開發板,移植完成!

注意,在開發板上執行qt程式要加-qws 選項,從而讓程式以server模式執行。

QT4 的移植總結

這段時間把qt4移植到了mini2440的開發板上,同時做了一些應用的開發,特總結一下。首先要弄清楚一些概念 1.什麼是qt?qt 是乙個跨平台應用程式框架。通過使用 qt,您可以一次性開發應用程式和使用者介面,然後將其部署到多個桌面和嵌入式作業系統,而無需重複編寫源 qt 軟體前身為 trollt...

Qt4開發總結

對qt的認識和開發還只是剛剛起步,但作乙個階段學習的總結還是很必要的。c gui programming with qt 4,second edition,這裡講了qt程式的寫法,以及各個類的應用。inside qt series 深入介紹了qt的實現機制 1.qt的事件處理機制 事件起源 qt的s...

交叉編譯Qt4

1.編譯tslib 1.4 ubuntu編譯tslib 1.4出錯 autogen.sh 4 autoreconf not found 因為沒有安裝automake 工具,ubuntu 10.04 用下面的命令安裝好就可以了。sudo apt get install autoconf automak...