qt在blackfin平台的移植(備忘)
前提:已經存在乙個可以執行ulinux系統(核心需要支援
unix socket
選項)且支援frambuffer的blackfin平台環境,並且有了blackfin平台編譯工具鏈。
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 -xplatformqws/linux-bfin-fdpic-g++ -shared -confirm-license -opensource -verbose-little-endian -no-qt3support -depths 8,16,24,32 -no-webkit -nomaketranslations -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::connecttolocalfilecould not connect:: bad file descriptor
qwssocket::connecttolocalfilecould not connect:: bad file descriptor
qwssocket::connecttolocalfilecould not connect:: bad file descriptor
if youwant 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)出現如下錯誤:
lockingqpf: permission denied
在複製font下的檔案時只複製*.qpf檔案即可,可能會支援不了中文顯示。
8.最後可以在$path中增加qt編譯後的bin目錄,主要是用到qmake,這樣就有了qt/blackfin平台的交叉編譯環境,可以編譯自己的qt**!
9.完成。
Qt在blackfin平台的移植 備忘
qt 在blackfin 平台的移植 備忘 前提 已經存在乙個可以執行 ulinux 系統 核心需要支援 unix socket 選項 且支援 frambuffer 的blackfin 平台環境 並且有了 blackfin 平台編譯工具鏈。1.qtembedde qt e ftp ftp.troll...
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...