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

106 篇文章 8 订阅
85 篇文章 9 订阅

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>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值