QT笔记--嵌入式QT交叉编译与移植(含OpenGL ES2)

介绍

本文记录了QT交叉编译并移植到开发板的过程,并在虚拟机上用QTcreater 开发程序,到开发板上运行。其中重点解决了一些过程中的BUG和坑。

准备工作

1、一个ubuntu系统的电脑(或虚拟机)
2、arm64位开发板
3、QT源代码软件包 qt-everywhere-opensource-src-5.9.6.tar.xz
4、linaro交叉编译器
5、tslib
6、sqlite3
7、开发板根文件系统,其中包含了OpenGL ES3的库文件和头文件。

步骤

一、交叉编译环境搭建

直接参考文章linux_ubuntu_gcc-linaro-7.4.1交叉编译器安装
其中建议安装aarch64最新版交叉编译器

二、tslib和sqlite3的交叉编译与移植

直接参考文章
ARM40之TSLIB移植
移植SQLite3到ARM40-A5

三、交叉编译QT

1、首先解压qt开源源码后,编辑相关的qmake.conf文件,由于我用的是arm64位的开发板,所以编译的是linux-aarch64-gnu-g++这个 目录下的qmake.conf

vim ~/qt-everywhere-opensource-src-5.9.6/qtbase/mkspecs/linux-aarch64-gnu-g++/qmake.conf

参考以下代码

#
# qmake configuration for building with aarch64-linux-gnu-g++
#

MAKEFILE_GENERATOR      = UNIX
CONFIG                 += incremental
QMAKE_INCREMENTAL_STYLE = sublib

QMAKE_CFLAGS_RELEASE   += -O2 -march=armv8-a -mtune=cortex-a53      #指定处理器架构
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv8-a -mtune=cortex-a53
 
include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)


QMAKE_INCDIR = $$[QT_SYSROOT]/usr/include                             #指定sysroot头文件
QMAKE_LIBDIR = $$[QT_SYSROOT]/usr/lib                                 #指定sysroot库文件
QMAKE_LIBDIR += $$[QT_SYSROOT]/usr/lib/aarch64-linux-gnu              #指定sysroot库文件
QMAKE_LIBDIR += $$[QT_SYSROOT]/lib                                    #指定sysroot库文件

QMAKE_INCDIR += /opt/tslib/include /opt/sqlite3/include   #指定tslib和sqlite头文件,需预编译
QMAKE_LIBDIR 
  • 0
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在 Linux 系统下交叉编译OpenGLQt,主要分为以下几个步骤: 1. 安装交叉编译工具链。 你需要先下载并安装适当的交叉编译工具链,可以从交叉编译工具链提供商的网站上下载。安装后需要将交叉编译器的路径添加到环境变量中。 2. 下载 Qt 源码。 你需要从 Qt 的官方网站上下载适合你的交叉编译工具链的 Qt 源码,并解压到本地目录。 3. 配置 Qt。 进入 Qt 源码目录,执行以下命令: ``` ./configure -prefix /path/to/install/dir -embedded arm -hostlinux-g++ -xplatform linux-arm-gnueabi-g++ -no-pch -no-gui -opensource -confirm-license ``` 其中,`/path/to/install/dir` 为你想要安装 Qt 的目录。`-embedded arm` 表示你正在为嵌入式 ARM 平台编译 Qt。`-hostlinux-g++` 表示你的编译机是 Linux,使用 GCC 编译器。`-xplatform linux-arm-gnueabi-g++` 表示目标平台是 Linux ARM,使用 GCC 编译器。`-no-pch` 表示不使用预编译头文件,加快编译速度。`-no-gui` 表示不编译 Qt GUI 模块。`-opensource` 表示使用 Qt 的开源许可证。`-confirm-license` 表示确认使用开源许可证。 4. 编译 Qt。 执行 `make` 命令开始编译 Qt。 5. 安装 Qt。 执行 `make install` 命令将 Qt 安装到指定目录。 6. 生成 Qt 应用程序。 在交叉编译工具链下,使用 qmake 工具生成 Qt 应用程序的 Makefile,然后执行 `make` 命令进行编译。在编译时需要加上 `-opengl es2` 参数,表示使用 OpenGL ES 2.0。 以上就是在 Linux 系统下交叉编译OpenGLQt 的步骤。注意,在编译时可能会遇到一些问题,需要根据具体情况进行调试和解决。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值