QT·移植Qt到ARM平台及搭建Qt交叉编译环境

这篇具有很好参考价值的文章主要介绍了QT·移植Qt到ARM平台及搭建Qt交叉编译环境。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、编译tslib库

二、移植 tslib 到文件系统

 三、编译Qt源码(用于移植到ARM)

四、移植Qt到文件系统

 五、搭建 Qt Creator 交叉编译环境

 六、获得Qt可执行文件的另一种方法


要想在ARM平台上运行Qt程序,得满足以下两个点:
1、ARM平台上搭建Qt运行环境
2、获得通过交叉编译后的Qt可执行文件

一、编译tslib库

从网上下载 tslib 源码压缩包,发送到 Ubuntu 中并解压,进入tslib源码目录,内容如下所示:

qt交叉编译arm,QT学习,linux,arm开发,ubuntu

 执行命令安装以下软件:

  • sudo apt-get update
  • sudo apt-get install autoconf automake libtool

执行 autogen.sh 生成 Makefile:

  • ./autogen.sh

配置使用的交叉编译器及 tslib 编译输出路径:

  • ./configure --host=arm-linux-gnueabihf ac_cv_func_malloc_0_nonnull=yes --cache-file=arm-linux.
  • cache -prefix=/home/xzj/tslib-1.21/arm-tslib

直接执行 make 编译及 make install 安装:

  • make
  • make install

安装完成后在当前目录下生成一个 arm-tslib 目录。也是我们上面指令的编译输出目录路径。可以查看生成目录下有以下内容:

二、移植 tslib 到文件系统

我把生成的 arm-tslib 放到了挂载的buildroot文件系统的跟目录,并改名为了 tslib。(可放在其它目录了,比如usr/lib,可不改名字,根据自己喜好,但接下来的环境变量要填对)

qt交叉编译arm,QT学习,linux,arm开发,ubuntu  配置 tslib 的环境变量
打开文件系统根目录下的/etc/profile文件,填入以下内容:

qt交叉编译arm,QT学习,linux,arm开发,ubuntu

简单说明: 
                TSLIB_TSDEVICE        //触摸屏设备文件名,这个需要选对
                TSLIB_CALIBFILE        //校准的数据文件,由ts_calibrate校准程序生成。 
                SLIB_CONFFILE        //配置文件名。 
                TSLIB_PLUGINDIR         //插件目录 
                TSLIB_CONSOLEDEVICE        //控制台设备文件名 
                TSLIB_FBDEVICE        //设备名
 
以上环境变量在实际开发中的实际配置可以根据实际情况决定。而这些指定的设备节点一定要和你的开发板上的/dev目录下的设备节点相对应。

可以使用 ts_calibrate 进行校验   ts_test      进行测试 

 三、编译Qt源码(用于移植到ARM)

从网上下载Qt源码 https://download.qt.io/,我下载的是5.12.9的版本。

 qt交叉编译arm,QT学习,linux,arm开发,ubuntu

 放到 ubuntu 并解压得到 qt-everywhere-src-5.12.9源码目录

qt交叉编译arm,QT学习,linux,arm开发,ubuntu

 修改 qmake.conf,配置相关的编译器,默认使用arm-linux-gnueabi前缀。

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

qt交叉编译arm,QT学习,linux,arm开发,ubuntu

 配置编译选项,输入./configure -help 指令,查看可配置选项,由于配置选项太长,我另写了一个脚本来执行配置选项,名为autoconfig.sh,配置主要指定编译输出路径和功能选择:

#!/bin/bash
./configure -prefix /home/xzj/tool/qt-everywhere-src-5.12.9/armqt-5.12.9 \
-opensource \
-confirm-license \
-release \
-strip \
-shared \
-xplatform linux-arm-gnueabi-g++ \
-optimized-qmake \
-c++std c++11 \
--rpath=no \
-pch \
-skip qt3d \
-skip qtactiveqt \
-skip qtandroidextras \
-skip qtcanvas3d \
-skip qtconnectivity \
-skip qtdatavis3d \
-skip qtdoc \
-skip qtgamepad \
-skip qtlocation \
-skip qtmacextras \
-skip qtnetworkauth \
-skip qtpurchasing \
-skip qtremoteobjects \
-skip qtscript \
-skip qtscxml \
-skip qtsensors \
-skip qtspeech \
-skip qtsvg \
-skip qttools \
-skip qttranslations \
-skip qtwayland \
-skip qtwebengine \
-skip qtwebview \
-skip qtwinextras \
-skip qtx11extras \
-skip qtxmlpatterns \
-make libs \
-make examples \
-nomake tools -nomake tests \
-gui \
-widgets \
-dbus-runtime \
--glib=no \
--iconv=no \
--pcre=qt \
--zlib=qt \
-no-openssl \
--freetype=qt \
--harfbuzz=qt \
-no-opengl \
-linuxfb \
--xcb=no \
-tslib \
--libpng=qt \
--libjpeg=qt \
--sqlite=qt \
-plugin-sql-sqlite \
-I/home/xzj/tool/tslib-1.21/arm-tslib/include \
-L/home/xzj/tool/tslib-1.21/arm-tslib/lib \
-recheck-all

给执行权限,执行脚本进行配置

  • chmod +x ./autoconfig.sh
  • sudo apt-get install g++ // 配置前请先安装 g++
  • ./autoconfig.sh

配置完成够开始进行编译和安装,由于编译用时比较久,最好使用多指令同时运行:

  • make -j12
  • make install

执行安装指令后,会在当前目录生成一个 armqt-5.12.9 文件,配置时命名的输出文件:

四、移植Qt到文件系统

把刚才生成的 armqt-5.12.9 放到挂载的 buildroot 文件系统的/opt目录中:qt交叉编译arm,QT学习,linux,arm开发,ubuntu

 要想Qt 程序显示中文,需把中文字库放到新建一个/usr/share/fonts/目录下。配置 Qt5 的环境变量,打开文件系统/etc/profile,添加如下内容:

qt交叉编译arm,QT学习,linux,arm开发,ubuntu
注意文件名和路径

以上就是搭建ARM平台(开发板)的Qt运行环境,接下来需要在ubuntu搭建Qt交叉编译环境。

 五、搭建 Qt Creator 交叉编译环境

从网上下载安装包安装 Qt Creator, qt-opensource-linux-x64-5.12.9.runqt交叉编译arm,QT学习,linux,arm开发,ubuntu

 下载完成后,给权限并执行安装:

  • chmod u+x qt-opensource-linux-x64-5.12.9.run
  • sudo ./qt-opensource-linux-x64-5.12.9.run

接下来就会弹出安装窗口,就跟在win安装应用一样了,省略。

安装完成后, 配置Qt Creator Kits。打开Qt,点击工具->选项

qt交叉编译arm,QT学习,linux,arm开发,ubuntu
配置 qmake,qmake在上面编译Qt源码后生成的armqt-5.12.9里面

qt交叉编译arm,QT学习,linux,arm开发,ubuntu

配置 C++编译器,这里我使用以前安装的交叉编译器,我的在ubuntu的/usr/local/arm/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi-g++

qt交叉编译arm,QT学习,linux,arm开发,ubuntu

 配置 Kits,选择刚才的Qt versions和C++编译器。

qt交叉编译arm,QT学习,linux,arm开发,ubuntu

qt交叉编译arm,QT学习,linux,arm开发,ubuntu

 Qt环境搭建好了,可以新建一个项目试试,在新建项目时的Kits选项记得把刚才添加Kits也勾选上。qt交叉编译arm,QT学习,linux,arm开发,ubuntu

  构建ARM平台上的Qt执行程序,就选上刚才新添加的Kit,然后点击构建,就会生成一个 build-test-ARM_Qt_5_12_9-Debug 的文件,里面就存放着Qt可执行程序,把这个可执行程序发送到ARM平台(开发板),然后直接运行就可以了。qt交叉编译arm,QT学习,linux,arm开发,ubuntu

qt交叉编译arm,QT学习,linux,arm开发,ubuntu

qt交叉编译arm,QT学习,linux,arm开发,ubuntu 如果想在ubuntu上运行,就选择默认的kit,然后直接点击绿色的三角形运行就可以了,同时会生成一个build-test-Desktop_Qt_5_12_9_GCC_64bit-Debug 文件,里面的可执行文件就是在ubuntu中运行的。qt交叉编译arm,QT学习,linux,arm开发,ubuntu

 qt交叉编译arm,QT学习,linux,arm开发,ubuntu

 六、获得Qt可执行文件的另一种方法

除了上面说的在Qt Creator 中构建出可以在ARM平台上运行的Qt程序之外,还有另一种方法也可以得到可以在ARM平台上运行的Qt程序。

进入项目的文件夹,直接运行qmake,生成 Makefile,再执行 make 开始编译。

  • cd test
  • /home/xzj/tool/qt-everywhere-src-5.12.9/armqt-5.12.9/bin/qmake
  • make


qt交叉编译arm,QT学习,linux,arm开发,ubuntu文章来源地址https://www.toymoban.com/news/detail-781955.html

到了这里,关于QT·移植Qt到ARM平台及搭建Qt交叉编译环境的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 龙芯2K1000LA移植交叉编译环境以及QT

    嵌入式大赛结束了,根据这次比赛中记的凌乱的笔记,整理了一份龙芯2K1000LA的环境搭建过程,可能笔记缺少了一部分步骤或者错误,但是大致步骤可以当作参考。 下载连接:龙芯 GNU 编译工具链 | 龙芯开源社区 (loongnix.cn)  拷贝在Ubuntu下并进行解压。  然后将该目录下的文件

    2024年02月10日
    浏览(85)
  • QT学习笔记-oracle oci数据库驱动交叉编译并移植到ARM开发板

    在上一文《QT学习笔记-QT安装oracle oci驱动》中介绍了在Windows环境下使用QT访问oracle数据库时遇到驱动无法加载问题的解决办法,大体思路是对QT源码中数据库驱动的源码oci进行编译,要想通过编译需要依赖对应数据库的头文件和库(可以通过下载oracle instant client),编译通过

    2024年02月13日
    浏览(57)
  • 3:Ubuntu上配置QT交叉编译环境并编译QT程序到Jetson Orin Nano(ARM)

       GCC配置同上   最后配置Kits 上面设置完成之后 ,设置Kits 中的Device(这是为了能够直接把项目部署到arm设备上)      点击NEXT之后会出现连接被拒绝,不用担心 ,下面会对其设置密码。 验证arm设置的密码。                 代码: 此代码是抄的别人的,具体是哪位博主的

    2024年02月11日
    浏览(47)
  • Ubuntu与致远ARM交叉编译Qt5.12环境

            ARM板现有环境配置(主要是对/etc/profile/编辑)较简单,参考上一篇博客,板子上已经部署了Qt5.15。 Ubuntu与国产致远ARM_3568交叉编译Qt 此文档只是为了记录错误的过程,下一往篇博客会直接介绍正确的配置。 https://blog.csdn.net/qq_35529025/article/details/129524412        

    2024年02月22日
    浏览(45)
  • ubuntu x86搭建 麒麟arm QT6交叉编译

    近期项目需求开发平台是unbuntu x86,目标机器是UOS arm架构,由于需要在不同平台上使用程序,需要建立基于QT6.32的交叉编译平台 交叉编译器 https://blog.csdn.net/zhang421412170/article/details/110952705 下载 gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu.tar.xz(因为我这里用的是linux平台进行编译,需要

    2024年02月13日
    浏览(47)
  • Qt教程3-Ubuntu(x86_64)上配置arm64(aarch64)交叉编译环境及QT编译arm64架构工程

    苦辣酸甜时光八载,春夏秋冬志此一生 Qt简介: Qt(官方发音 [kju:t],音同 cute)是一个跨平台的 C++ 开发库,主要用来开发图形用户界面(Graphical User Interface,GUI)程序,当然也可以开发不带界面的命令行(Command User Interface,CUI)程序。 Qt 支持的操作系统有很多,例如通用

    2024年01月23日
    浏览(50)
  • Linux-Arm环境下配置编译qt-everywhere及交叉编译环境

    最近在搞交叉编译的事,手上拿了个同事的香橙派玩交叉编译,现在来到了第一步,就是先在arm上配置qt的开发环境。当然了Qt没有直接提供qt on arm,而是需要自行在arm环境下编译一个qt环境出来,所以这里需要使用到qt提供的qt everywhere套件在板载系统上编译 移植Qt到ARM平台及

    2024年04月11日
    浏览(52)
  • 嵌入式Linux Qt交叉编译环境搭建

    TinkerBoard2主板,BuildRoot根文件系统,package自带的Qt版本为5.14.2,所以安装的版本也是5.14.2 安装的组件看个人需求,我都要了 默认安装路径/opt/Qt5.14.2/ 源码路径/opt/Qt5.14.2/5.14.2/Src/ 安装后选定的打包工具路径/opt/Qt5.14.2/5.14.2/(我的默认有gcc_64和android) 这种方法容易导致version `G

    2024年01月25日
    浏览(53)
  • QT配置arm-linux-g++交叉编译器

    ubuntu16.4版本虚拟机 qt5.12.9版本 ,qt-everywhere-src-5.12.9(版本要一致,没试过版本不同是否可行) (qt5.15.2 qt5.14.2都装了下,按照以下流程都是完全没错误) arm-linux-g++4.8.3版本 由于最近接手公司离职员工的代码,通常我个人都是直接写Makefile来完成,对方用的Qt配合交叉编译器

    2024年01月19日
    浏览(47)
  • RK3568开发笔记(七):在宿主机ubuntu上搭建Qt交叉编译开发环境,编译一个Demo,目标板运行Demo测试

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/132733901 红胖子网络科技博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中… 上一篇:《RK3568开发笔记(六):

    2024年02月07日
    浏览(63)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包