Qt在blackfin平台的移植 備忘

2021-06-21 10:02:57 字數 2863 閱讀 1241

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...