qt
在blackfin
平台的移植(備忘
)
前提:已經存在乙個可以執行
ulinux
系統(核心需要支援
unix socket
選項)且支援
frambuffer
的blackfin
平台環境
,並且有了
blackfin
平台編譯工具鏈。
1.qtembedde(qt/e)
:ftp://ftp.trolltech.no/qt/source/qt-embedded-linux-opensource-src-4.5.1.tar.gz;
2.qt/e
支援blackfin
的補丁,從
的uclinux
版本,因為該版本支援
qt,解壓後在解壓目錄下
lib/qt-embedded/patches
下有相關的補丁(如果有的話也可從其它地方下);
3.解壓
qt-embedded-linux-opensource-src-4.5.1.tar.gz
,在解壓後的目錄下利用
patch
命令打上所有的補丁:
patch -p1 -e <
(補丁檔案)
注意:由於補丁版本的
bug打完補丁後還需要修改觸壓目錄下
src/gui/embedded/qscreenlinuxfb_qws.cpp檔案,
找到412
行把map_shared
改為map_private,
否則將無法正常顯示
,修改如下:
改前:
data = (unsigned char *)-1;
if (d_ptr->fd != -1)
data = (unsigned char *)mmap(0, mapsize, prot_read | prot_write,
map_shared , d_ptr->fd, 0);
改後:
data = (unsigned char *)-1;
if (d_ptr->fd != -1)
data = (unsigned char *)mmap(0, mapsize, prot_read | prot_write,
map_private
, d_ptr->fd, 0);
如果要支援自己的觸控螢幕需自更改相關滑鼠驅動檔案**,檔案所在目錄為
:src/gui/embedded,
最後採用修改
qmouselinuxtp_qws.cpp
和qmouselinuxtp_qws.h
檔案,新增自己的觸控螢幕資訊解碼相關**
(詳細的修改可以參考網上
),最後需在配置選項增加
-qt-mouse-linuxtp
對linuxtp
驅動的支援.
4.打完補丁和修改**後,可以進行
qt的配置,可以通過
./configure –help
檢視相關的配置幫助,配置選項的意思可以在配置幫助檢視,最後採用如下配置:
./configure -prefix /usr/local/qtembedded -embedded bfin -xplatform qws/linux-bfin-fdpic-g++ -shared -confirm-license -opensource -verbose -little-endian -no-qt3support -depths 8,16,24,32 -no-webkit -nomake translations -no-cups -no-nis -no-dbus -qt-gfx-linuxfb -no-iconv -no-glib -no-rpath -no-feature-qws_cursor -qt-mouse-linuxtp
注:-no-feature-qws_cursor
表示不出現滑鼠指標.
5.配置成功後就可以進行
make;
6.make
成功後生成相關動態庫和例項,即基本完成移植;
7.把例項放到平台上執行
,先要配置環境變數:
export qws_mouse_proto=linuxtp:(
觸控螢幕裝置節點)
再把相關的動態庫複製到
blackfin
平台的/usr/lib
目錄下,同時也要把
font
下的*qpf
檔案複製到指定的目錄,複製到什麼目錄可以執行下例項,出錯時會提示出目錄;
再執行:
./例項
–qws & 加
&表示後台執行
,如果沒出錯表示執行成功;
執行出錯分析提示 :
(1)直接./
例項執行出現如下錯誤:
qwssocket::connecttolocalfile could not connect:: bad file descriptor
qwssocket::connecttolocalfile could not connect:: bad file descriptor
qwssocket::connecttolocalfile could not connect:: bad file descriptor
if you want to run this program as a server,
add the "-qws" command-line option.
需加-qws
執行即./
例項–qws
如果還出現
socket
類的錯誤可能是核心沒有增加
unix socket
的支援;
(2)出現如下錯誤:
qlinuxfbscreen::connect: no such device
error: failed to map framebuffer device to memory.
表示沒把
src/gui/embedded/qscreenlinuxfb_qws.cpp
檔案進行修改,
(3)出現如下錯誤碼:
qfontdatabase
: cannot find font directory /usr/local/qte-arm/lib/fonts - is qt ?
aborted
(注:/usr/local/qte-arm/lib/fonts
這個具體路徑視你安裝
qte的路徑而定)
需要把編譯後在
lib下的
fonts
複製到對應提示的目錄。
(4)出現如下錯誤:
locking qpf: permission denied
在複製font
下的檔案時只複製
*.qpf
檔案即可,可能會支援不了中文顯示。
8.最後可以在
$path
中增加qt
編譯後的
bin目錄,主要是用到
qmake
,這樣就有了
qt/blackfin
平台的交叉編譯環境,可以編譯自己的
qt**!
9.完成。
Qt在blackfin平台的移植 備忘
qt在blackfin平台的移植 備忘 前提 已經存在乙個可以執行ulinux系統 核心需要支援 unix socket 選項 且支援frambuffer的blackfin平台環境,並且有了blackfin平台編譯工具鏈。3.解壓qt embedded linux opensource src 4....
Qt跨平台專案在Mac平台的編譯
如果是剛拿到手的mac,那麼需要先安裝xcode,安裝這個可能會提示把系統公升級到最新,所以使用mac總會受迫地公升級公升級公升級,每次公升級都是好幾個g,安裝好xcode要記得開啟,這個過程大概會自動配置一些引數,否則接下來安裝的qt在編譯過程將可能提示sdk配置不正確。安裝好qt之後,就可以開始...
Qt5 3 2在ARM Linux平台的移植
3 指定交叉編譯器 修改配置檔案 home qt qt everywhere opensource src 5.3.2 qtbase mkspecs linux arm gnueabi g qmake.conf qmake configuration for building with arm li...