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>