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

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

  • 1.安装tslib
  • 2.安装QT5.4.1
    • 2.1下载QT5.4.1
    • 2.2解压
    • 2.3修改配置文件替换自己的编译器
    • 2.4配置
    • 2.4配置
    • 2.5 make
    • 2.6 make install
  • 3 配置ARM
    • 3.1 拷贝文件到arm上
    • 3.2 配置ARM环境
  • 4 运行
    • 4.1可能出现的问题
    • 4.2可能出现的问题

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/

2.3修改配置文件替换自己的编译器

使用下面的命令去修改配置文件 设置相应的编译器

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

下面替换为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)

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

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

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

你可能感兴趣的:(LINUX QT移植到ARM (zynq平台 qt5.4.1))