海思平台移植Qt5.10带触摸-tslib

海思平台交叉编译Qt5.10带触摸屏

海思3516移植Qt过程还是比较简单,因为海思没有提供硬件加速opengl库,所以我们去掉opengl功能,使用linuxfb作为图象渲染插件。这里由于要使用触摸屏,所以需要移植tslib进行触屏支持。

一、移植tslib

1.安装交叉编译器(这里不介绍安装过程,按照海思提供的readme进行安装即可)
2.下载tslib最新源码:https://github.com/libts/tslib
3.安装依赖工具:sudo apt-get install autoconf automake autogen libtool,如果已安装请忽略这步
4.编译配置:

./configure --prefix=/home/xxx/work/Hi3516/bulid_libs/tslib --host=arm-linux-gnueabi CC=/opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-gcc

-prefix指定你需要编译完成得到的路径,具体以自己实际为准。
5.make & make install
需要很注意的一点是指定编译器的时候需要使用绝对路径,否则make install极有可能出错:
relink ‘linear.la’ with the above command before install it
在这里插入图片描述

二、移植Qt

1.下载qt5.11.3源码:http://download.qt.io/archive
2.解压源码并cd进入源码目录,新建一个脚本文件auto_build.sh,内容如下:

#!/bin/sh
./configure \
-prefix /opt/HI3516_qt5.10  \
-release \
-v \
-opensource \
-make libs \
-xplatform linux-arm-gnueabi-g++ \
-qt-sqlite \
-linuxfb \
-qt-zlib \
-gif \
-qt-libpng \
-qt-libjpeg \
-tslib \
-no-opengl \
-no-iconv \
-no-cups \
-nomake examples \
-skip qt3d \
-skip qtdoc \
-skip qtwebengine \
-skip qtwebview \
-skip qtlocation \
-skip qtgamepad \
-skip qtandroidextras \
-skip qtmacextras \
-skip qtx11extras \
-skip qtserialbus \
-I/home/xxx/work/Hi3516/tslib/include \
-L/home/xxx/work/Hi3516/tslib/lib

参数说明:
-xplatform 指定需要使用的qmake.conf配置
-tslib 指定需要打开ts
-no-opengl 去掉opengl
-no-iconv 去掉iconv,不去掉运行的时候会报错
-nomake examples 不编译qt例程,节约编译时间
-skip qtwebengine 去掉qtwebengine 相关

3.修改qmake.conf,进入目录qtbase/mkspecs/linux-arm-gnueabi-g++

#
# qmake configuration for building with arm-linux-gnueabi-g++
#

QT_QPA_DEFAULT_PLATFORM = linuxfb

MAKEFILE_GENERATOR      = UNIX
CONFIG                 += incremental
QMAKE_INCREMENTAL_STYLE = sublib

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

# modifications to g++.conf
QMAKE_CC                = /opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-gcc
QMAKE_CXX               = /opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-g++
QMAKE_LINK              = /opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-g++
QMAKE_LINK_SHLIB        = /opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-g++

# modifications to linux.conf
QMAKE_AR                = /opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-ar cqs
QMAKE_OBJCOPY           = /opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-objcopy
QMAKE_NM                = /opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-nm -P
QMAKE_STRIP             = /opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-strip
load(qt_config)

4.chmod +x auto_build.sh ,执行./auto_build.sh,片刻配置完成。
海思平台移植Qt5.10带触摸-tslib_第1张图片
可以看到tslib选项已经打开。
5.接下来就是make -j4
6.按照我上面的步骤,基本编译不会报错,当然每个人具体编译环境不一样,也可能还是会有报错,需要自己耐心的去解决完,最后就安装:make install

三、使用测试

把qt库拷贝到开发板,ts库也拷贝到开发板。
修改/etc/profile

这里以自己库实际路径为准。
到此基本完成移植工作,我们来测试下触摸,我们触摸驱动时在cat /dev/input/event0,点击屏幕
海思平台移植Qt5.10带触摸-tslib_第2张图片
说明触摸驱动时ok的。
这里还需要说明一点,海思平台使用的fb是在传统的fb上面做了修改,叫做hifb,所以如果要打开Qt程序界面需要先初始化hifb,然后再打开Qt程序,这样界面就出来了,这里不作hifb的介绍了。
笔者经测试后,qt界面打开后触摸精准,使用正常。
喜欢的朋友可以点赞哈~ . ~

作者:费码程序猿
欢迎技术交流:QQ:255895056
转载请注明出处,如有不当欢迎指正

你可能感兴趣的:(交叉编译)