TSLIB 源码编译 由于 QT 依赖 TSLIB,因此在编译 QT 源码前先编译 TSLIB。 从 https://github.com/libts/tslib/releases/tag/1.15 中下载 tslib-1.15tar.bz2 到 Linux 系 统下并解压,进入解压目录,新建 install 目录:

cd tslib-1.15

mkdir install


确认交叉编译链是否匹配:

获取 install 目录的完整路径:

开始交叉编译:

./configure --prefix=/home/ronnie/work/ssd201/qt/tslib-1.15/install -host=arm-linux-gnueabihf

make

make install


QT 源码编译 静态编译  从 http://download.qt.io/archive/qt/5.15/5.15.0/single/下载 qt-everywhere-src-5.15.0. tar.xz 到 Linux 系统下并解压:

xz -d qt-everywhere-src-5.15.0.tar.xz

tar -xvf qt-everywhere-src-5.15.0.tar

cd qt-everywhere-src-5.15.0


新建编译脚本 make.sh(也可以从 test/qt/make_static.sh 获得)

touch make.sh

chmod a+x make.sh

vi make.sh


修改 qmake.conf:

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


开始交叉编译:

./make.sh

#!/bin/sh
PWD=pwd
mkdir install
./configure
-prefix $PWD/install
-static \ -release \
-opensource \
-xplatform linux-arm-gnueabi-g++
-optimized-qmake -pch
-qt-libjpeg
-qt-libpng \
-qt-zlib \
-no-opengl \
-skip qt3d \
-skip qtcanvas3d
-skip qtpurchasing \
-skip qtlocation \
-skip qttools \
-no-sse2 \
-no-openssl
-no-cups \
-no-glib \
-no-iconv \
-tslib \
-linuxfb \
-I /home/ronnie/work/ssd201/qt/tslib-1.15/install/include
-L /home/ronnie/work/ssd201/qt/tslib-1.15/install/lib \
-recheck-all \
-make examples
make -j16
make install
等待一段时间后,configure 完成,提示:Do you accept the terms of either license? 输 入 yes 并按回车,继续编译直至完成(编译时间长短由系统配置决定),将会在 install 目录生成我们需要的文件:


设置 qmake 环境变量:

vi ~/.bashrc

export PATH=/home/ronnie/work/ssd201/qt/qt-everywhere-src-5.15.0/install/bin:$PATH

source ~/.bashrc


动态编译
操作步骤和静态编译一样,唯一的区别是 make.sh 不同(也可以从 test/qt/make_s hare.sh 获得):

vi make.sh

!/bin/sh
PWD=pwd
mkdir install
./configure \
-prefix $PWD/install \
-release \
-opensource \
-xplatform linux-arm-gnueabi-g++ \
-optimized-qmake -pch \
-qt-libjpeg
-qt-libpng \
-qt-zlib \
-no-opengl \
-skip qt3d \
-skip qtcanvas3d
-skip qtpurchasing
-skip qtlocation \
-skip qttools \
-no-sse2
-no-openssl \
- no-cups \
- -no-glib \
- -no-iconv \
- -tslib \
- -linuxfb \
- -I /home/ronnie/work/ssd201/qt/tslib-1.15/install/include \
- -L /home/ronnie/work/ssd201/qt/tslib-1.15/install/lib
- -recheck-all
- -make examples make -j16 make install

初始化屏幕

在 QT 应用程序执行前,需要先初始化屏幕,否则无法正常显示。屏幕初始化可以 参考 JpegPlayer/的 logo.c。
将 test/JpegPlayer.tar 下载到 Linux 系统下,并解压到 project 同级目录下:
进入解压目录,并将 logo.c 拷贝为 disp_init.c:
修改 disp_init.c,将初始化以外的代码删除:


将已经调好的屏参头文件拷贝到 JpegPlayer 目录下:

修改 sstardisp.c,将屏参头文件包含:

修改 makefile

编译,将在目录下生成 disp_init 可执行文件:

make


验证QT
Example
在 qt5 中自带了一些 examples 工程,我们可以通过这个 demo 来验证我们上面 的工作是否正确,或者验证某些功能。这些 examples 工程位于 qtbase/examples 目 录下:

静态编译

静态编译时,我们需要指定 QTPLUGIN 为 qlinuxfb,通过工程的.pro 来配置, 假设我们要验证的 demo 为 qtbase/examples/widgets/widgets/analogclock,则需要 修改 qtbase/examples/widgets/widgets/analogclock/analogclock.pro:

vi qtbase/examples/widgets/widgets/analogclock/analogclock.pro

在末尾加一行 “QTPLUGIN
+= qlinuxfb”

接着重新编译(由于前面已经编译过了,这里实际只编译刚刚修改的 examples):

make -j16

操作完成后,可以看到 qtbase/examples/widgets/widgets/analogclock/analogclock 重新生成了,我们执行以下步骤将 analogclock 放到板子上跑起来:
将编译好的 disp_init 程序(在初始化屏幕一节中获得)拷贝到板子上

将刚刚生成的 analogclock 拷贝到板子上

把 tslib 编译生成的 lib、bin 和 etc 目录下的文件(从 TSLIB 编译获得)分 别拷贝到板子的/usr/lib、/usr/bin 和 etc 目录下


将字库文件拷贝到板子的/usr/share/font 目录下

运行 disp_init,初始化屏幕显示

如果是电阻屏,需要先使用 ts_calibrate 来校准

新建 qt_static_env.sh,内容如下
export TSLIB_PLUGINDIR=/usr/lib/ts
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_CALIBFILE=/etc/pointercal
export QT_QPA_PLATFORM=linuxfb
export QT_QPA_FONTDIR=/usr/share/font

作为sigmastar代理-启明云端为你分享干货SSD201/202的QT的移植相关推荐

  1. 作为sigmastar代理-启明云端为你分享干货SSD201/202的QT的移植(二)

    设置 qt 运行环境参数 运行 analogclock 如果不能正常显示请检查前面步骤是否执行了 动态编译 在动态编译 QT 源码后,会生成 install/examples 目录,里面已经生成了一些 ...

  2. 乐鑫代理启明云端用图文带你一分钟快速了解ESP32-S3的功能特性:支持AI加速,更好的应用于图像、语音等识别,集成Wi-Fi + Bluetooth LE 5.0和高达44 个可编程 GPIO 管脚

    乐鑫代理-启明云端用图文带你一分钟快速了解ESP32-S3的功能特性: 支持 AI 加速 ESP32-S3 MCU 增加了用于加速神经网络计算和信号处理等工作的向量指令 (vector instruc ...

  3. 乐鑫代理启明云端分享| ESP32系列教程之五: Eclipse搭建esp-idf环境

    提示:前面小明已经为大家分享了4个章ESP32系列教程,今天继续为大家分享,希望大家多多关注我们!启明云端作为乐鑫代理,一直希望能帮到更多的开发者能快速上手乐鑫系列芯片的开发. 前言 提示:本文档为E ...

  4. 乐鑫代理启明云端分享|ESP32 系列教程之四: Windows 搭建 esp-idf 环境

    提示: 本文档为 ESP32 教程系列,旨在为客户进行 ESP32 系列芯片开 发提供环境搭建.工程示例演示等方面的参考文档及视频演示,降低 ESP32 系列芯片.模组开发的入门难度. ESP32 教 ...

  5. 乐鑫代理启明云端分享|ESP32系列教程之三: VS Code远程连接Linux

    提示:本文档为ESP32教程系列,旨在为客户进行ESP32系列芯片开发提供环境搭建.工程示例演示等方面的参考文档及视频演示,降低ESP32系列芯片.模组开发的入门难度. ESP32教程系列文档主要参考 ...

  6. 乐鑫代理启明云端分享:用ESP32单片机控制LED教程示例

    提示:准备好开发板和LED灯 1.可以选择启明云端推出的ESP32开发板,上手简单 原因: 启明云端WT-ESP32-DevKitC V4开发板,这是一款基于ESP32的小型开发板,集WIFI+蓝牙方 ...

  7. 乐鑫代理-启明云端分享ESP32系列教程之二:Linux搭建esp-idf环境

    提示:此教程依据乐鑫官方的ESP32入门教程总结而来,仅供个人参考学学习,如有错误,欢迎批评指正.乐鑫官方参考: 乐鑫官方文档地址 1.搭建esp-idf环境 1.1安装虚拟机与Ubuntu 未安装请 ...

  8. 乐鑫代理-启明云端分享|乐鑫ESP8266模组ESP-WROOM-02D和ESP-WROOM-02U有什么不同

    提示:乐鑫ESP8266模组ESP-WROOM-02D和ESP-WROOM-02U有什么不同 前言 乐鑫为客户提供集成 ESP8266EX 的贴⽚式模组 ESP-WROOM-02D 和 ESPWROO ...

  9. 乐鑫代理-启明云端分享|ESP32与ESP32-C3功耗对比篇(一)

    ESP32: ESP32在烧录成功hello_world测试固件时的功耗:32mA ESP32-C3: ESP32-C3在烧录成功hello_world测试固件时的功耗:26.3mA 虽然当前的WIF ...

最新文章

  1. Java压缩html
  2. POJ 1417 True Liars 并查集+背包
  3. 【英语学习】【WOTD】fantod 释义/词源/示例
  4. sql多行插入insert多行无法分析查询文本_收藏!SQL语法全集合!
  5. 安全加固脚本及解析等保2.0(仅供参考)
  6. 第一章 安装和使用SQL Server 2008 R2
  7. 网站在微信中提示从浏览器打开
  8. java课程 教 学小结_Java私塾中级课程学习感受和小结3
  9. Ubuntu18网络配置
  10. android模拟登陆,android,httpclient_Android模拟登录数据获取不了?无法传递?,android,httpclient,模拟登录 - phpStudy...
  11. 开源系统的选择-比较全面的各类开源应用系统列表
  12. Web前端面试 面试官常问问题
  13. php中关于qq第三方登录
  14. html+js 调用摄像头识别二维码
  15. 趣头条爬虫(以财经频道为例)
  16. 2022普通人做抖音的红利在哪里
  17. 用Python搭建简单自动化报表(漏斗模型)
  18. 【论文笔记】如何研读一篇论文
  19. 安全面试之安全基础(二)
  20. -- 40、查询选修“张三“老师所授课程的学生中,成绩最高的学生信息及其成绩

热门文章

  1. react cron表达式生成组件qnn-react-cron
  2. 阿里云code登录,阿里云code使用教程
  3. Spring Boot 菜鸟教程 12 EasyPoi导出Excel下载
  4. 2015百度面试题--对10亿个32位整数去重和排序
  5. 关于VB.NET IIF函数
  6. web linux 桌面,Ubuntu无桌面进行Web浏览器测试
  7. [积分学]重积分与曲线积分曲面积分的理解
  8. 显著性假设(基础篇)
  9. MODBUS通信协议代码
  10. Cy5/FITC/CY3/CY7-Nab-PTX ,荧光标记白蛋白结合型紫杉醇