Qt在blackfin平台的移植 備忘

2021-05-24 04:49:07 字數 3745 閱讀 8007

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