Qt-embedded-linux移植要點Qt qt-embedded-linux移植要點qt 2 qt-embedded-linux的安裝 (1)下載源碼包,,解壓,; 下載開源嵌入式版本的網(wǎng)址:http://download./qt/source/常用官網(wǎng) qt news:http://www./about/news qt downloads:http://www./downloads qt Quarterly:http://doc./qq/ qt bugs:http://www./developer/task-tracker qt Supported Platforms:http://doc./supported-platforms.html qt Version Changes :http://www./developer/changes qt books: http://www./developer/books (2)建立支持庫 通過./configure來設(shè)置,主要配置可以通過--help來獲得幫助,;之后用make命令,,然后用make install 命令。將庫安裝到指定的路徑下面,。其中的設(shè)置包括指定安裝的路徑,;未配置的話,默認(rèn)的路徑是/usr/local/Trolltech/QtEmbedded-4.5.0,; (3)設(shè)置環(huán)境變量 為了能夠使用Qt for Embedded Linux, 必須導(dǎo)出的PATH變量有qmake, moc 以及其他Qt for Embedded Linux 的工具, 以及LD_LIBRARY_PATH 必須導(dǎo)出,。例如: PATH=/usr/local/Trolltech/QtEmbedded-4.5.0/bin:$PATH export PATH (4)建立虛擬的frambuffer。 建立虛擬的frambuffer,,需要安裝X11 Platforms .
3 嵌入式linux版本的qt環(huán)境變量 QT_ONSCREEN_PAINT:如果定義了的話,,可以用來將控件顯示在屏幕上,。如果沒有其他控件在同一個區(qū)域的話,該設(shè)備響應(yīng)的區(qū)域?qū)⒉粫S著屏幕設(shè)備驅(qū)動的改變而改變,。設(shè)置這個環(huán)境變量相當(dāng)于在控件中應(yīng)用程序中設(shè)置Qt::WA_PaintOnScreen,。 QWS_SW_CURSOR:如果定義了的話,軟件鼠標(biāo)的光標(biāo)將一直是可用的,。(即使使用硬件加速驅(qū)動器來支持硬件光標(biāo)) QWS_DISPLAY:指定顯示形式和framebuffer.例如:export QWS_DISPLAY= QWS_SIZE:指定嵌入式linux qt窗口在屏幕上的大小,。export QWS_SIZE= QWS_MOUSE_PROTO:指定觸摸設(shè)備。 export QWS_MOUSE_PROTO= QWS_KEYBOARD為輸入設(shè)備指定輸入設(shè)備和驅(qū)動,。比如:export QWS_KEYBOARD= 4 在嵌入式linux上運行qt程序 Using a Single Display 單顯示,,運行這種顯示方式,改變Linux console,而且選擇一個應(yīng)用來運行,。它要求在安裝過程中,,環(huán)境變量是可用的。它要求指定的硬件設(shè)備驅(qū)動必須工作正常,。比如: cd path/to/QtEmbedded/demos/textedit ./textedit -qws * Using Multiple Displays linux同時也是支持多設(shè)備顯示,。有兩種方式可以完成。當(dāng)在運行多服務(wù)程序的時候,,顯示屏的驅(qū)動(以及數(shù)量)必須為每一個程序進行指定,。用-display命令行或者QWS_DISPLAY 來指定。比如: ./myfirstserverapplication -qws -display "transformed:rot90:1" ./mysecondserverapplication -qws -display "QVFb:2" 需要注意的是,,必須指定一個顯示設(shè)備,,在開始客戶端程序的時候。比如:./myclientapplication -display "QVFb:2",。在程序運行的時候,,沒有辦法將一個客戶端程序從一個顯示移動到另一個顯示。用多顯示屏驅(qū)動,,另一方面,,應(yīng)用程序可以方便的在兩個不同類型的顯示屏之間切換。多屏幕顯示可以用-display命令行參數(shù)來指定 或者通過設(shè)置QWS_DISPLAY環(huán)境變量比如: ./myserverapplication -qws -display "Multi: QVFb:0 QVFb:1:offset=0,0 VNC:offset=640,0 :2" * Command Line Options 命令行選項 5 移植qt在嵌入式linux的應(yīng)用 字體庫的支持:是在qt的/lib/fonts目錄下,。由于程序運行的時候是到這個文件夾下面來調(diào)用,因此需要將字體庫復(fù)制到這個目錄下,。 環(huán)境變量的設(shè)置:通常情況下,與默認(rèn)的環(huán)境變量不同,,因此需要設(shè)置的有QWS_MOUSE_PROTO, QWS_KEYBOARD 以及 QWS_DISPLAY,,用來指定鼠標(biāo)、鍵盤以及顯示設(shè)備管理。在./configure 的時候需要加入的選項是-qt-kbd- framebuffer的支持:沒有特殊需求的情況下,,要求在目標(biāo)設(shè)備上使能framebuffer。Linux framebuffer在標(biāo)準(zhǔn)設(shè)置情況下是使能的,。 6 嵌入式linuxqt 顯示管理 Available Drivers可用的驅(qū)動 嵌入式linux的qt提供的驅(qū)動有Linux framebuffer, the virtual framebuffer, transformed screens, VNC servers and multi screens.通過運行./configure 選項來列出可用的驅(qū)動,。默認(rèn)的配置是不加速的Linux framebuffer driver (/dev/fb0) 被打開。其他的設(shè)備驅(qū)動也可以使能或者禁止,,通過以下命令行,。例如:./configure -qt-gfx-transformed Specifying a Driver指定一個驅(qū)動 通過設(shè)置環(huán)境變量QWS_DISPLAY來指定一個設(shè)備。比如:格式如下的: export QWS_DISPLAY=" Subdrivers and Multiple Drivers子驅(qū)動和多驅(qū)動 VNC, Transformed 和Multi screen drivers取決于子驅(qū)動。通用的語法是: export QWS_DISPLAY=" * mmWidth=
7 輸入設(shè)備鍵盤和鼠標(biāo)的設(shè)置與管理 export QWS_MOUSE_PROTO=" 需要注意的是:Vr41xx 驅(qū)動有兩個可選的參數(shù):press= export QWS_MOUSE_PROTO="Vr41xx:press=500:/dev/misc/ts" 對于The Tslib Mouse Driver是一個繼承QWSCalibratedMouseHandler的類,,在產(chǎn)生鼠標(biāo)事件的時候,提供校驗和濾波的功能,,用于使用同一的觸摸屏的庫,。為了使用鼠標(biāo),必須編譯的選項是-qt-mouse-tslib,。此外,,tslib的頭文件和庫也要在build的環(huán)境變量中指出來。tslib 的源碼可以在http://tslib.. 下載,。通過-L 和-I 來指定庫和頭文件的位置,。比如: ./configure -L
module linear在make Qt for Embedded Linux 時候特別指定tslib 鼠句柄,,設(shè)置環(huán)境變量QWS_MOUSE_PROTO ,。可能出現(xiàn)問題的地方是設(shè)備文件和文件權(quán)限兩個方面,。為了保證能夠正確的使用設(shè)備文件,,第一步,先測試一下設(shè)備文件是否有輸出,。比如:如果指定的鼠標(biāo)設(shè)備驅(qū)動是:QWS_MOUSE_PROTO=IntelliMouse:/dev/input/mouse0,,然后檢查設(shè)備的輸出,通過在控制臺上敲: cat /dev/input/mouse0 | hexdump,,移動鼠標(biāo)后,,如果可以在控制臺上看見輸出,表示能夠正確的使用設(shè)備,,否則要重新連接設(shè)備,。對于設(shè)備的讀寫權(quán)限,一般要求對設(shè)備至少有讀權(quán)限,。比如:QWS_MOUSE_PROTO=IntelliMouse:/dev/input/mouse0,,那么應(yīng)該將該設(shè)備的權(quán)限設(shè)置為chmod a+rw /dev/input/mouse0。如果設(shè)備文件符號連接到另一個文件的話,,必須改變相關(guān)文件的屬性,。
原文鏈接:http://blog.csdn.net/chen2qiao/archive/2009/09/16/4554520.aspx |
|