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
LINUX QT移植到ARM (zynq平台 qt5.4.1)
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>