久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Qt-embedded-linux移植要點Qt

 lao_o 2010-01-24
Qt-embedded-linux移植要點Qt

qt-embedded-linux移植要點qt
1,、安裝qt對系統(tǒng)的要求
安裝qt的過程在不同的平臺上會有所不同,,主要關(guān)嵌入式linux平臺上如何安裝。若需要提供對OpenSSL的支持,,需要通過單獨安裝OpenSSL Toolkit,來獲得Secure Sockets Layer (SSL)。對于不同的平臺上,會有不同的要求,。下面具體關(guān)注嵌入式linux的要求。如果要在qt上對QtWebKit模塊的支持,,必須使用uClibc 0.9.29或者更高的版本,以對pthread的支持,。在內(nèi)存方面的要求主要取決于體系架構(gòu)以及在編譯過程中使能的QT選項,。下面是針不同平臺上qt支持庫的大小。
Architecture      
 Compiler
 QtCore
 QtGui
 QtNetwork
 QtWebKit
 
Minimal
 Normal
 Minimal
 Normal
 Minimal
 Normal
 Minimal
 Normal
 
linux-x86-g++
 GCC 4.2.4
 1.7M
 2.7M
 3.3M
 9.9M
 653K
 1.1M
 N/A
 17M
 
linux-arm-g++
 GCC 4.1.1
 1.9M
  3.2M
 4.1M
 11M
 507K
 1.0M
 N/A
 17M
 
linux-arm-g++ (thumb)
 GCC 4.1.1
 1.7M
  2.8M
 4.0M
 9.8M
 409K
 796K
 N/A
 17M
 
linux-mips-g++ (MIPS32)
 GCC 4.2.4
 2.0M
  3.2M
 4.5M
 12M
 505K
 1003K
 N/A
 21M
 

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)境變量
POINTERCAL_FILE:指定文件包含的數(shù)據(jù),,用來校準(zhǔn)觸摸筆設(shè)備。同時可以參考QWSCalibratedMouseHandler and Qt for Embedded Linux Pointer Handling.

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=x

QWS_MOUSE_PROTO:指定觸摸設(shè)備。 export QWS_MOUSE_PROTO=[:],,參數(shù)可以是MouseMan, IntelliMouse, Microsoft, VR41xx, LinuxTP, Yopy. Tslib and keys,。/dev/mouse 指的是鼠標(biāo)設(shè)備,  /dev/ts for touch panels,。

QWS_KEYBOARD為輸入設(shè)備指定輸入設(shè)備和驅(qū)動,。比如:export QWS_KEYBOARD=[:]。參數(shù)可以是SL5000, Yopy, VR41xx, TTY, USB and keys,,指定的是一個標(biāo)準(zhǔn)設(shè)備,。比如:/dev/tty0。

4 在嵌入式linux上運行qt程序
任何嵌入式linux應(yīng)用程序可以通過構(gòu)建QApplication 對象QApplication::GuiServer的格式,被構(gòu)建為服務(wù)server application,?;蛘咄ㄟ^-qws命令行選項的方式。本文當(dāng)假設(shè)用The Virtual Framebuffer 或者嵌入式linux的VNC協(xié)議,,或者正確配置的Linux framebuffer,。而且沒有服務(wù)進程在運行??梢允褂玫娘@示方式有:

     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)用
    移植過程和移植到x11平臺上的差別不大,,遵守通用的移植過程,。然后還包括幾個方面:字體庫移植,設(shè)置環(huán)境變量以及Framebuffer的支持,。

   字體庫的支持:是在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- and -qt-mouse- ,,這樣才能使能這些設(shè)備驅(qū)動,。但是還需要指定一個具體的設(shè)備,因此需要通過設(shè)置環(huán)境變量來完成,。

   framebuffer的支持:沒有特殊需求的情況下,,要求在目標(biāo)設(shè)備上使能framebuffer。Linux framebuffer在標(biāo)準(zhǔn)設(shè)置情況下是使能的,。

6 嵌入式linuxqt 顯示管理
當(dāng)需要顯示的時候,,默認(rèn)的動作是每一個嵌入式linux的客戶端將 需要的顯示的色調(diào)存放在內(nèi)存中,然后服務(wù)端將相關(guān)的數(shù)據(jù)從內(nèi)存在中送到顯示屏上,。服務(wù)端用顯示屏驅(qū)動copy內(nèi)存中的內(nèi)容到顯示屏上顯示,。顯示屏的驅(qū)動是在服務(wù)端應(yīng)用加載的時候運行的,用的是qt的插件系統(tǒng),。常用的方式有:可用的驅(qū)動,;指定一個驅(qū)動;子驅(qū)動和多驅(qū)動,。

    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="[:]... [:]"  可以用的參數(shù)有:LinuxFb, QVFb, VNC, Transformed, Multi and keys identifying custom drivers,。參數(shù)的被用來分辨用相同驅(qū)動的屏幕,,而且使能多顯示。如下的表格用來指定驅(qū)動,。環(huán)境變量的QWS_DISPLAY也可以通過-display來設(shè)置,。比如: myApplication -display "[:]...  [:]"

    Subdrivers and Multiple Drivers子驅(qū)動和多驅(qū)動

    VNC, Transformed 和Multi screen drivers取決于子驅(qū)動。通用的語法是: export QWS_DISPLAY="[:][:]...[ :]"至于子驅(qū)動,,在每個子驅(qū)動之間加上空間是很重要的,,在顯示設(shè)備前加上用來分開各個驅(qū)動和顯示設(shè)備。注意的是多屏幕驅(qū)動可以擁有多個子設(shè)備驅(qū)動,,比如: export QWS_DISPLAY="Multi: QVFb:0 QVFb:offset=640,0:1 :2"注意的是:VNC screen driver在沒有指定屏幕驅(qū)動的情況下,,默認(rèn)的是虛擬屏幕驅(qū)動。在這種情況下,,VNC driver有一些額外的參數(shù)來指定大小的位寬,,參數(shù)有:    * size=  * depth=   * mmHeight=

* mmWidth= 。例如:export QWS_DISPLAY="VNC:size=720x480:depth=32",。例如運行VNC屏幕驅(qū)動在Linux framebuffer driver的情況下,,則:export QWS_DISPLAY="VNC:LinuxFb"

7 輸入設(shè)備鍵盤和鼠標(biāo)的設(shè)置與管理
       當(dāng)運行一個Qt for Embedded Linux應(yīng)用程序的時候,,不管是作為一個服務(wù)還是連接到另一個服務(wù),當(dāng)它開始運行的時候,,鼠標(biāo)驅(qū)動被服務(wù)的應(yīng)用加載,,用qt的plugin system。 在配置qt的時候通過選項來選擇支持的鼠標(biāo)以及鍵盤設(shè)備,,同時測試可用的設(shè)備,。通過 ./configure -help 查看可用的設(shè)備,配置時候默認(rèn)的是PC的鼠標(biāo)驅(qū)動,。如果是自己添加一個設(shè)備,,比如觸摸屏,則需要創(chuàng)建一個QWSCalibratedMouseHandler subclass來完成校驗功能,。若提供的pc的鼠標(biāo)被使能,,Qt for Embedded Linux將會自動探測所支持的一種鼠標(biāo)設(shè)備,這個設(shè)備是在/dev/psaux 或者 /dev/ttyS的一種,。如果多種類型的都檢測到的話,,則多種同時支持。需要注意的是,,Qt for Embedded Linux 不支持自動檢測觸摸屏設(shè)備,,因此需要指定使用的是哪一種。要設(shè)置環(huán)境變量QWS_MOUSE_PROTO ,,例如:export QWS_MOUSE_PROTO=[:],,其中的參數(shù)可以是MouseMan, IntelliMouse, Microsoft, VR41xx, LinuxTP, Yopy, Tslib and keys,driver specific options是一個標(biāo)準(zhǔn)設(shè)備,,比如:dev/mouse,,觸摸屏的是/dev/ts。多鼠標(biāo)可以用下列方式來指定,。

 export QWS_MOUSE_PROTO="[:]

         [:]

         [:]"

需要注意的是:Vr41xx 驅(qū)動有兩個可選的參數(shù):press=來定義單擊的時間(默認(rèn)值是750),;filter= 指定的是濾波長度。用于慮掉噪聲,。比如:

        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 -I ,。 為了保證能夠使用鼠標(biāo),tslib必須正確的安裝在目標(biāo)機上,。包括提供一個ts.conf 配置文件和設(shè)置必要的環(huán)境變量。ts.conf包括兩行:內(nèi)容是: module_raw input

      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

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多