imx6ull之Qt移植

发布者:温暖心情最新更新时间:2025-02-27 来源: cnblogs关键字:Qt移植  交叉编译工具链 手机看文章 扫描二维码
随时随地手机看文章

开发板:飞凌 OKMX6ULL-S + 7寸电阻屏

交叉编译工具链:gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf

Qt:qt-everywhere-opensource-src-5.9.0.tar

 

一、移植

  1、上传并解压:tar -xvf qt-everywhere-opensource-src-5.9.0.tar

  2、将之前编译好的tslib库复制到/opt下

    sudo cp TSLIB_INSTALL/ /opt/ -rf

  3、修改与配置

    cd qt-everywhere-opensource-src-5.9.0/

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

      添加并修改以下内容

      QT_QPA_DEFAULT_PLATFORM = linuxfb
      QMAKE_CFLAGS_RELEASE += -O2 -march=armv7-a
      QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv7-a
      QMAKE_INCDIR +=/opt/TSLIB_INSTALL/include
      QMAKE_LIBDIR +=/opt/TSLIB_INSTALL/lib

      arm-linux-gnueabi修改为arm-linux-gnueabihf

      

cd ~/qt-everywhere-opensource-src-5.9.0/

对Qt进行如下配置


./configure -prefix /opt/qt5.9.0 

-opensource 

-release 

-no-pch

-confirm-license 

-xplatform linux-arm-gnueabi-g++ 

-qt-zlib 

-no-iconv

-no-gif

-qt-libjpeg

-no-opengl

-skip qtdeclarative 

-skip qtquickcontrols   

-skip qtquickcontrols2 

-no-qml-debug 

-no-cups   

-no-glib 

-no-dbus 

-no-rpath

-no-sse2 -no-sse3 -no-ssse3 -no-sse4.1 -no-sse4.2 

-no-avx 

-no-openssl 

-nomake tools 

-qreal float 

-qt-libpng 

-tslib

-nomake examples   

-I /opt/TSLIB_INSTALL/include/   -L /opt/TSLIB_INSTALL/lib/


    执行make

    sudo make install

    这样会在/opt/qt5.9.0目录下得到我们编译的qt库

    

二、测试

 

  1、qt库部署

    复制到~/rootfs/usr下,重命令为qt5

      cp /opt/qt5.9.0/ ~/rootfs/usr/ -rf

      cd ~/rootfs/usr

      mv qt5.9.0/ qt5

    修改~/rootfs/etc/profile添加以下内容

      export LD_LIBRARY_PATH=/usr/qt5/lib:$LD_LIBRARY_PATH
      export QT_QPA_GENERIC_PLUGINS=tslib
      export QT_QPA_FONTDIR=/usr/lib/fonts
      export QT_QPA_PLATFORM_PLUGIN_PATH=/usr/qt5/plugins
      export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0:size=800x600:mmSize=800x600:offse t=0x0:tty=/dev/tty1
      export QT_QPA_FB_TSLIB=1

  3、编写qt测试程序

    设置环境变量

      sudo vi /etc/profile

      在最后添加:export PATH=/opt/qt5.9.0/bin:$PATH   -- 不要写错

      source /etc/profile

    现在就可以使用qmake了

    编写代码

      cd ~/rootfs/root

      vi qttest.cpp


  1 #include

  2 #include

  3

  4 int main(int argc, char *argv[]) {

  5         QApplication a(argc, argv);

  6         QPushButton btn('Button Test');

  7         btn.show();

  8         return a.exec();

  9 }


      qmake -project

      vi root.pro

      加上QT = core gui widgets

      执行qmake

      make

      可以看到生成可执行文件root

  4、执行qt程序

    给开发板上电,到root目录下执行./root,可以看到界面上已经出现按钮并可以点击,但按钮上并没有显示字体'Button Test',且console中也有提示,与fonts有关;

    

 

   5、拷贝fonts

    mkdir ~/rootfs/usr/lib/fonts

    cp /usr/share/fonts/gnu-free/* ~/rootfs/usr/lib/fonts/

    重启运行./root

    我们发现console不再提示且已经可以正常显示字体了。

    

     如果我们的字体包含中文,此时是不能正常显示中文的,则可以拷贝/usr/share/fonts/wqy-zenhei/*至~/rootfs/usr/lib/fonts/下,把原Free*备份

    

 

     这样就可以正常显示中英文了


关键字:Qt移植  交叉编译工具链 引用地址:imx6ull之Qt移植

上一篇:Linux4.1.15内核移植-imx6ull
下一篇:imx6ull之tslib移植

推荐阅读最新更新时间:2026-03-25 11:14

用crosstool-ng建立自己的ARM交叉编译工具 (适用于S3C6410以及其它处理器)
一、下载crosstool-ng crosstool-ng的下载地址是:http://ymorin.is-a-geek.org/download/crosstool-ng/ 值得注意的是,下载里最新的crosstool-ng以后,记得在到http://ymorin.is-a-geek.org/download/crosstool-ng/01-fixes/ 看看有没有相应的补丁,有得话一起下载下来。 本次下载的版本是 1.7.0 无 patch。 二、准备crosstool-ng的安装环境 系统环境为 ubuntu 10.04。=== 强列推荐使用ubuntu环境,安装包简单,不需要去单独下载和安装了。apt-ge
[单片机]
s3c2440 gcc交叉编译工具制作
前言: 因为准备学习lwip,之前在stm32上移植跟着教程走得差不多了,但是用的keil。所以想在一个新平台移植一下巩固巩固,正好有2440的板子,也学一下gcc-make这样的开发流程,配套的编译器很老,编译配套的linux2.6.22.6内核还是没问题的,但是当我用裸机模板创建一个包含lwip的代码的工程时,编译就会出现以下错误: collect2: ld terminated with signal 11 , core dumped /home/streleizia/gcc-3.4.5-glibc-2.3.6/bin/../lib/gcc/arm-linux/3.4.5/../../../../arm-linux/bin/
[单片机]
U-boot 在 mini2440-S3C2440 上的移植(1)-开发环境搭建-交叉编译工具的安装
编译U-boot给mini2440时,要编译出能在ARM平台上使用的可执行文件-bin,首先要在ubuntu 中安装交叉编译工具链,因为我使用的是友善之臂的开发板,所以我使用的已经制作好的工具链,当然也可以自己制作工具链:如基于GCC和glibc制作工具链,可以使用cross tools编译; 我使用的工具链的版本是arm-linux-gcc-4.3.3版本,下载地址:下载地址 1.在pc端下载好以后,将压缩包用xftp传输到Ubuntu;当然也可以用其他软件上传;上传后把它放在根目录下的/usr/local文件夹中新建一个arm文件夹,然后把压缩包复制到这个文件夹;注意先建好文件夹再上传,可以减少很多工作量; 一定要上传压缩包,
[单片机]
U-boot 在 mini2440-S3C2440 上的<font color='red'>移植</font>(1)-开发环境搭建-<font color='red'>交叉</font><font color='red'>编译</font><font color='red'>工具</font><font color='red'>链</font>的安装
交叉编译工具的命名规则
命名规则 交叉编译工具链的命名规则为:arch 根据对操作系统的支持与否,ARM GCC可分为支持和不支持操作系统,如 arm-none-eabi:这个是没有操作系统的,自然不可能支持那些跟操作系统关系密切的函数,比如fork(2)。他使用的是newlib这个专用于嵌入式系统的C库。 arm-none-linux-eabi:用于Linux的,使用Glibc 实例 1、arm-none-eabi-gcc (ARM architecture,no vendor,not target an operating system,complies with the ARM EABI) 用于编译 ARM 架构的裸机系统(包括 A
[单片机]
<font color='red'>交叉</font><font color='red'>编译</font><font color='red'>工具</font><font color='red'>链</font>的命名规则
详细介绍构建ARM Linux的交叉编译工具
学习目标: ● 了解交叉编译工具链 ● 理解分步构建交叉编译工具链的方法 ● 学会使用Crosstool工具构建交叉编译工具链 2.1 交叉编译工具链介绍 读者可能会有疑问,为什么要用交叉编译器?交叉编译通俗地讲就是在一种平台上编译出能运行在体系结构不同的另一种平台上的程式,比如在PC平台(X86 CPU)上编译出能运行在以ARM为内核的CPU平台上的程式,编译得到的程式在X86 CPU平台上是不能运行的,必须放到ARM CPU平台上才能运行,虽然两个平台用的都是Linux系统。这种方法在异平台移植和嵌入式研发时非常有用。相对和交叉编译,平常做的编译叫本地编译,也就是在当前平台编译,编译得到的程式也是在本地执行。用来编译这种跨
[单片机]
嵌入式linux-arm交叉编译工具的构建
第一步:首先下载如下源文件 binutils-2.16. tar.gz,gcc-3.4.4.tar.bz2, t-linux.diff, glibc-2.3.5.tar.gz, glibc-linuxthreads-2.3.5.tar.gz, ioperm.c.diff, linux-2.6.11.12tar.gz 并且把所有的源文件放入/home/zmj/usr/arm/src文件夹中,其中zmj是用户名。并把如下脚本,写入一个文件,例如文件名为buildchain.sh,并把该文件放入usr目录下。 第二步: 运行buildchain.sh脚本即可。其中第七步是不需要的,将来自己编译内核的时候还要重新配置,故可以删去。 #!/b
[单片机]
今天使用crosstool制作了arm-linux交叉编译工具
今天使用crosstool制作了arm-linux交叉编译工具链,并且成功编译和运行u-boot-1.3.0。 通过http://www.kegel.com/crosstool/了解crosstool。 要制作的交叉编译工具链版本为3.3.2。 具体步骤如下: 下载crosstool-0.43.tar.gz mkdir /home/wxm/crosstool cp crosstool-0.43.tar.gz /home/wxm/crosstool cd /home/wxm/crosstool tar -jxvf crosstool-0.43.tar.gz mkdir downloads 下载源码包: binuti
[单片机]
迅为IMX6Q开发板QT系统移植tinyplay
tinyalsa 是 Google 在 Android 4.0 之后推的基于 alsa 内核的用户层音频接口。tinyalsa 提供的头文件是 asoundlib.h ,提供最基础的 pcm 和 mixer 操作。 tinyalsa 的实现文件为 pcm.c(实现 pcm api)和 mixer.c(实现 mixer api)。在其中有四个小工具它们分别是: tinypcminfo:tinypcminfo.c,查看 pcm 设备能力; tinyplay:tinyplay.c,使用 pcm 设备播放 wav 格式的音频文件; tinycap:tinycap.c,使用 pcm 设备采集 pcm 格式的码流,并保存为 wav 格式的文件
[单片机]
迅为IMX6Q开发板<font color='red'>QT</font>系统<font color='red'>移植</font>tinyplay
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved