LINUX QT移植到ARM (zynq平臺 qt5.4.1)

LINUX QT移植到ARM (zynq平臺 qt5.4.1)

https://blog.csdn.net/qq_14843999/article/details/92075020

Qt5.4.1移植到arm——Linuxfb篇

http://www.myir-tech.com/bbs/thread-7174-1-1.html

1.安裝tslib

tslib1.4可以在網上下載
安裝編譯過程可以參考其他教程

2.安裝QT5.4.1

2.1下載QT5.4.1

鏈接: 網站下載

2.2解壓

使用下面命令解壓

tar xzf qt-everywhere-opensource-src-5.4.1.tar.gz
cd qt-everywhere-opensource-src-5.4.1/
  • 1
  • 2

2.3修改配置文件替換自己的編譯器

使用下面的命令去修改配置文件 設置相應的編譯器

vi qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf
  • 1

下面替換爲ARM板上可以運行的tslib 路徑
QMAKE_INCDIR += /usr/local/tslib/include
QMAKE_LIBDIR += /usr/local/tslib/lib

arm-linux-gnueabihf 替換成你自己的編譯器
如果編譯有問題,最好改成絕對路徑

/*************************************
*arm-linux-gnueabihf 替換成相應的編譯器
***************************************/
MAKEFILE_GENERATOR      = UNIX
CONFIG                 += incremental
QMAKE_INCREMENTAL_STYLE = sublib

QT_QPA_DEFAULT_PLATFORM = linuxfb
QMAKE_CFLAGS_RELEASE += -O2 -march=armv7-a
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv7-a

include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)

QMAKE_INCDIR += /usr/local/tslib/include
QMAKE_LIBDIR += /usr/local/tslib/lib

modifications to g++.conf

QMAKE_CC = arm-linux-gnueabihf-gcc -lts
QMAKE_CXX = arm-linux-gnueabihf-g++ -lts
QMAKE_LINK = arm-linux-gnueabihf-g++ -lts
QMAKE_LINK_SHLIB = arm-linux-gnueabihf-g++ -lts

modifications to linux.conf

QMAKE_AR = arm-linux-gnueabihf-ar cqs
QMAKE_OBJCOPY = arm-linux-gnueabihf-objcopy
QMAKE_NM = arm-linux-gnueabihf-nm -P
QMAKE_STRIP = arm-linux-gnueabihf-strip
load(qt_config)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

2.4配置

執行下面命令去配置
修改安裝路徑 -prefix後面就是你自己的安裝路徑
-prefix /usr/local/qt5.4.1_arm \

./configure \
        -prefix /usr/local/qt5.4.1_arm \
        -confirm-license \
        -opensource \
        -release  \
        -make libs \
        -xplatform linux-arm-gnueabi-g++ \
        -optimized-qmake \
        -pch \
        -qt-sql-sqlite \
        -qt-libjpeg \
        -qt-libpng \
        -qt-zlib \
        -tslib \
        -no-sse2 \
        -no-openssl \
        -no-nis \
        -no-cups \
        -no-dbus \
        -no-glib \
        -no-xcb \
        -no-xcursor -no-xfixes -no-xrandr -no-xrender \
        -no-separate-debug-info \
        -make examples -nomake tools -nomake tests -no-iconv \
        -mtdev -evdev
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

2.4配置

編譯make
安裝sudo make install

2.5 make

執行 make命令

2.6 make install

執行 sudo make install

3 配置ARM

3.1 拷貝文件到arm上

到qt的安裝目錄下把所有文件拷貝到arm上的/opt目錄
到tslib安裝補錄下把所有的文件拷貝到/opt目錄下
/opt這個目錄可以自己定義

3.2 配置ARM環境

可以將下面的內容寫入/etc/profile文件中 板卡啓動之後就會自動配置

export TSLIB_CONSOLEDEVICE=none
#配置tslib的屏幕設備文件
export TSLIB_FBDEVICE=/dev/fb0
#配置tslib的觸摸屏文件
export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_CONFFILE=/opt/etc/ts.conf
export TSLIB_PLUGINDIR=/opt/lib/ts
export TSLIB_CALIBFILE=/etc/pointercal
export LD_LIBRARY_PATH=/lib:/opt/lib
export PATH=/bin:/sbin:/usr/bin/:/usr/sbin:/opt/bin

export QT_QPA_PLATFORM_PLUGIN_PATH=/opt/plugins
export QT_PLUGIN_PATH=/opt/plugins/platforms/
export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0:tty=/dev/tty1
export QT_QPA_FONTDIR=/opt/lib/fonts
#配置你需要使用的輸入設備 觸摸屏或者鍵盤鼠標
export QT_QPA_GENERIC_PLUGINS=evdevmouse
#export QT_QPA_GENERIC_PLUGINS=tslib:$TSLIB_TSDEVICE
export QT_QPA_EVDEV_MOUSE_PARAMETERS=/dev/input/event2
export QT_QPA_FB_HIDECURSOR=0

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

4 運行

4.1可能出現的問題

可以運行/opt/examples/下面的程序測試一下

4.2可能出現的問題

1.運行無法啓動 提示沒有找到或者打開linuxfb
打開調試信息
export QT_DEBUG_PLUGINS=1
通過觀察輸出信息應該是缺少某些庫文件
我是出現缺少freetype庫文件
2.打開鼠標光標顯示
QT5中用QPA替換QWS,但是默認情況下,鼠標的光標不顯示。解決方案可參考下面的網站
https://stackoverflow.com/questions/38838198/embedded-qt-mouse-pointer-not-showing-up

export QT_QPA_GENERIC_PLUGINS=evdevmouse
注意:這裏必須是鼠標相對應的eventx設備文件 而不能選擇mice 或者mousex.我是通過嘗試出來的
export QT_QPA_EVDEV_MOUSE_PARAMETERS=/dev/input/event2
官方文檔中說如果沒有設置該參數,鼠標就會顯示出來。但實際情況是隻有把這個環境變量設置爲0的時候纔會顯示鼠標指針
export QT_QPA_FB_HIDECURSOR=0

                                </div>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章