运行平台:OKMX6DL-C

编译平台:Ubuntu 14.04.6 LTS

编译工具:arm-poky-linux-gnueabi-gcc(gcc version 5.3.0 (GCC) )

qt源码:qt-everywhere-opensource-src-5.9.6.tar.xz

参考:

嵌入式开发之Qt-5.9.6交叉编译(带WebEngine)

QT官网关于交叉编译说明

g++: internal compiler error: Killed (program cc1plus) 解决办法

第4篇 交叉编译Qt 5.4.0

安装 SDK:

资料:飞凌开发板提供的OKMX6X-C_Linux4.1.15 用户资料Linux工具fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-neon-toolchain-4.1.15-2.1.0.sh

(1)将fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-neon-toolchain-4.1.15-2.1.0.sh拷贝到虚拟机任意目录 ,执行:

./fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-neon-toolchain-4.1.15-2.1.0.sh

默认将会安装到/opt/fsl-imx-x11/目录下(这里安装到了/opt/fsl-imx-x11/4.1.15-2.1.0/)。

安装完成后 /opt/fsl-imx-x11/4.1.15-2.1.0/ 目录结构如下:

lin@ubuntu:/opt/lin$ ls
environment-setup-cortexa9hf-neon-poky-linux-gnueabisite-config-cortexa9hf-neon-poky-linux-gnueabi
sysroots
version-cortexa9hf-neon-poky-linux-gnueabi

environment-setup-cortexa9hf-neon-poky-linux-gnueabisite-config-cortexa9hf-neon-poky-linux-gnueabi 是环境初始化脚本。

(2)环境变量(注意空格):

. /opt/lin/environment-setup-cortexa9hf-neon-poky-linux-gnueabisite-config-cortexa9hf-neon-poky-linux-gnueabi

(3)译器是否安装成功:

 arm-poky-linux-gnueabi-gcc  -v 

安装依赖库

sudo apt-get install gcc-multilib g+±multilib

sudo apt install pkg-config

sudo apt install pkgconf

解压qt源码

$ xz -d  qt-everywhere-opensource-src-5.9.6.tar.xz         #解压文件
$ tar xvf qt-everywhere-opensource-src-5.9.6.tar

删除旧版Qt

需要着重注意sysroot对应的cortexa9hf-neon-poky-linux-gnueabi目录下存在之前编译的旧Qt版本的动态库,必须进行清除操作,否则将会影响新版本Qt的编译。

cd /opt/lin/sysroots/cortexa9hf-neon-poky-linux-gnueabi/usr/lib$
sudo rm .libQt* -rf
sudo rm lib/qt5 -rf

创建配置脚本

#!/bin/bash
sudo ./configure -v -opensource -confirm-license -sysroot /opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/cortexa9hf-neon-poky-linux-gnueabi -no-gcc-sysroot -prefix /usr/local/Qt-5.9.6 -device linux-imx6-g++ -device-option CROSS_COMPILE=/opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi- -release -shared -make libs -verbose -no-pch  -no-rpath -pkg-config -accessibility -no-alsa -icu -dbus -no-glib -no-directfb -eglfs -no-kms -linuxfb -xcb -xcb-xlib -evdev -no-libinput -xinput2 -no-tslib -libudev -no-mtdev -nomake examples -nomake tests -fontconfig -no-opengl -opengl es2 -egl -no-openvg -system-zlib -system-libjpeg -system-libpng -system-xcb -openssl-linked -qt-pcre -pulseaudio -no-sm -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-odbc -no-sql-psql -no-sql-sqlite2 -no-sql-tds -widgets -xkb

修改qtbase/mkspecs/devices/linux-imx6-g++/qmake.conf

#
# qmake configuration for the Freescale iMX6 boards (single, dual and quad)
#
# The configuration below is set up for running with EGL on the framebuffer via
# the eglfs platform plugin and its eglfs_viv backend.# Wayland is also fully functional out of the box. However, when writing Wayland
# *compositors* with Qt, the eglfs backend will have to be switched to
# eglfs_viv_wl by setting the QT_QPA_EGLFS_INTEGRATION environment variable.
#
# Below is an example configure line that assumes the SDK is in
# $HOME/imx6/toolchain. On device Qt is expected to be placed under
# /usr/local/qt5 whereas on the host 'make install' will copy the host tools and
# the target libraries to $HOME/imx6/qt5.
#
# ./configure -prefix /usr/local/qt5 -extprefix $HOME/imx6/qt5 -device linux-imx6-g++
#   -device-option CROSS_COMPILE=$HOME/imx6/toolchain/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-
#   -sysroot $HOME/imx6/toolchain/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi
#   -nomake examples -nomake tests -v
#include(../common/linux_device_pre.conf)QMAKE_LIBS_EGL         += -lEGL
QMAKE_LIBS_OPENGL_ES2  += -lGLESv2 -lEGL -lGAL
QMAKE_LIBS_OPENVG      += -lOpenVG -lEGL -lGALIMX6_CFLAGS             = -march=armv7-a -mfpu=neon -DLINUX=1 -DEGL_API_FB=1
QMAKE_CFLAGS           += $$IMX6_CFLAGS
QMAKE_CXXFLAGS         += $$IMX6_CFLAGSDISTRO_OPTS += hard-floatDBUS_LIBS               = -L/opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/cortexa9hf-neon-poky-linux-gnueabi/usr/lib-ldbus-1# Preferred eglfs backend
EGLFS_DEVICE_INTEGRATION = eglfs_vivQMAKE_INCDIR_OPENGL_ES2 = /home/l/workspace/imx6/tools/gpu-viv-bin-mx6q-3.10.17-1.0.2/hardfp/usr/include
QMAKE_LIBDIR_OPENGL_ES2 = /home/l/workspace/imx6/tools/gpu-viv-bin-mx6q-3.10.17-1.0.2/hardfp/usr/lib
QMAKE_INCDIR_EGL = /home/l/workspace/imx6/tools/gpu-viv-bin-mx6q-3.10.17-1.0.2/hardfp/usr/include
QMAKE_LIBDIR_EGL = /home/l/workspace/imx6/tools/gpu-viv-bin-mx6q-3.10.17-1.0.2/hardfp/usr/libinclude(../common/linux_arm_device_post.conf)# modifications to g++.conf
QMAKE_CC                = /opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc -march=armv7-a -mfpu=neon  -mfloat-abi=hard -mcpu=cortex-a9 --sysroot=/opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/cortexa9hf-neon-poky-linux-gnueabi
QMAKE_CXX               = /opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-g++ -march=armv7-a -mfpu=neon  -mfloat-abi=hard -mcpu=cortex-a9 --sysroot=/opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/cortexa9hf-neon-poky-linux-gnueabi
QMAKE_LINK              = /opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-g++ --sysroot=/opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/cortexa9hf-neon-poky-linux-gnueabi
QMAKE_LINK_SHLIB        = /opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-g++ --sysroot= /opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/cortexa9hf-neon-poky-linux-gnueabi# modifications to linux.conf
QMAKE_AR                = /opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-ar cqs
QMAKE_OBJCOPY           = /opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-objcopy
QMAKE_NM                = /opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-nm -P
QMAKE_STRIP             = /opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-stripload(qt_config)

gpu库

至此EGLFS i.Mx6的支持是无法开启的,原因为sysroot中的EGL依赖库不是GPU版本,必须使用官方提供的GPU版本。gpu-viv-bin-mx6q-3.10.17-1.0.0.tar.gz

tar  xvzf  gpu-viv-bin-mx6q-3.10.17-1.0.0.tar.gz 

解压完成后进入gpu-viv-bin-mx6q-3.10.17-1.0.0目录,该目录中有以下内容: 其中hardfp中的内容是我们需要的。把hardfp目录下的usr/lib/和include文件替换sysroot目录下的usr/lib 和usr/include中的文件,此目录是自己定义的,读者可以拷贝到其它目录下,只需要在后边修改Qt的编译配置文件的时候设置正确就可以了。~

sudo make

许久之后。。。

好久好久以后。。。

sudo make install

c++ qt5范例开发大全_使用yocto工具编译qt5.9.6总结相关推荐

  1. c++ qt5范例开发大全_237页建设工程监理内业资料全套范例,附百份案例表格,快拿走...

    237页建设工程监理内业资料全套范例,附百份案例表格,快拿走 监理内业资料的规范程度能充分体现一个监理项目部的管理水平,监理资料规范与否不是资料员一个人的事情,需要项目部全体人共同努力. 今天给大家整 ...

  2. arm ubuntu 编译boost_使用yocto工具编译qt5.9.6总结

    运行平台:OKMX6DL-C 编译平台:Ubuntu 14.04.6 LTS 编译工具:arm-poky-linux-gnueabi-gcc(gcc version 5.3.0 (GCC) ) qt源 ...

  3. Java范例开发大全源程序

    Java范例开发大全源程序下载链接: http://download.csdn.net/detail/miniapp/3735617 想要订购折扣杂志吗?那就猛点这里吧 目 录 第1篇 Java编程基 ...

  4. c语言范例开发大全 ed2000,C#范例开发大全(刘丽霞、李俊民) PDF 扫描版[102M]

    C#范例开发大全(刘丽霞.李俊民)精心挑选了有代表意义的488个实例,详细介绍如何利用c#语言的强大功能开发各类应用程序.本书附带1张dvd光盘,内容为本书中所有实例的多媒体语音教学视频及书中的所有实 ...

  5. C#范例开发大全.刘丽霞李俊民(奋斗的小鸟)_PDF 电子书

    下载地址:http://pan.baidu.com/share/link?shareid=1537299969&uk=721744522 内容简介 本书精心挑选了有代表意义的488个实例,详细 ...

  6. c语言范例开发大全DVD,C语言程序开发范例宝典(光盘内容另行下载,地址见书封底)...

    前言 第1章 基础知识 1.1 进制转换 实例001 十进制转换为十六进制 实例002 十进制转换为二进制 实例003 n进制转换为十进制 实例004 以IP地址形式输出 1.2 条件判断 实例005 ...

  7. 数据可视化工具大全_在线可视化工具大合集

    在这个大数据时代,数据可视化虽然不是必不可少的,但却是可以加快效率,为报告锦上添花的.今天,说起数据可视化,我们就不得不谈一下数据可视化工具了.看了很多数据可视化产品,总结下来分为几大类. 1.入门级 ...

  8. VS2017中配置QT5.12开发环境

    VS2017中配置QT5.12开发环境 一.安装VS2017 二.安装QT5.12.0 1.下载 2.安装 二.在VS2017中配置QT 三.在VS2017中创建QT工程 一.安装VS2017 关于V ...

  9. 《Unity 游戏案例开发大全》一6.5 游戏主场景

    本节书摘来异步社区<Unity 游戏案例开发大全>一书中的第6章,第6.1节,作者: 吴亚峰 , 杜化美 , 于复兴 责编: 张涛,更多章节内容可以访问云栖社区"异步社区&quo ...

最新文章

  1. 详解MariaDB数据库的触发器
  2. 转换时间对象和字符串对象添加时间
  3. mysql导入sas文件夹_MYSQL导出HTML格式数据如何导入到SAS中
  4. python matplotlib.pyplot如何绘制实时图表?(实时绘制、更新图表、实时更新、动态窗口)plt.ion() plt.clf() plt.pause() plt.ioff()
  5. c语言 goto 跳出循环,goto语句可以跳出循环.ppt
  6. 【Servlet】请求转发、重定向、Cookie使用之三天自动登陆
  7. HTML 静态网页制作12月2日表单样式
  8. flex的12个属性
  9. dotnetcore-officeaddin-toolbox : Office 365 Add-in开发人员的工具箱
  10. 怎么在Windows 11中为音频输出选择扬声器
  11. Repository(资源库)模式
  12. 批处理等待上一条完成再执行下面的_分布式批处理实现方案
  13. Arp Scan和局域网隐身
  14. JSON序列——主从表查询
  15. Kubernetes vs OpenStack
  16. RabbitMQ教程_4 Java 使用rabbitmq
  17. 2021非科班生的Java面试之路,java思维导图笔记
  18. 最大功率点跟踪测试软件,最大功率点跟踪(MPPT)
  19. lycos搜索引擎_Lycos中国推出全新搜索引擎
  20. C语言:实数类型。2021-02-15

热门文章

  1. ORA-28000: the account is locked
  2. 使用run-rs启动mongodb
  3. linuxsed替换字符串后保存_Numpy运用-文件读写、存储及字符串处理
  4. charts引入icon图片_v-charts 踩坑之路
  5. mac 删除php56 安装php72,mac php56升级php70
  6. 安装tomcat和jdk 步骤
  7. 29 | 堆的应用:如何快速获取到Top 10最热门的搜索关键词?
  8. 使用jquery图表插件jqplot之折线图
  9. 毫米波雷达_最新的7个毫米波雷达应用案例
  10. IDEA设置取消自动显示参数提示