Hi3516开发笔记(七):Hi3516虚拟机交叉开发环境搭建之交叉编译Qt
上一篇:《Hi3516开发笔记(六):通过HiTools使用USB/串口将uboot、kernel、rootfs和userdata按照分区表烧写镜像》
下一篇:《Hi3516开发笔记(八):Hi3516虚拟机交叉开发环境搭建之配置QtCreator开发交叉编译环境》敬请期待…
前言
前面搭建好了基础的交叉编译环境,但是我们使用到的主要是qt,所以要交叉编译qt,本篇交叉编译qt并安装ubuntu版本的qt,与紧接着本篇的后一篇紧密相关。
获取Qt源码
《获取下载Qt安装包,Qt源码全国网址备忘录(可不用注册,即可下载各版本Qt安装包和Qt源码包)》
下载Qt5.12.7版本如下图:

(建议,同时下载该版本的ubuntu安装包,包含了qtcreator和mingw32的编译器,这样可以在ubuntu上可以先跑部分与arm无关的代码)
前提
交叉编译需要先配好交叉编译器,可参照《Hi3516开发笔记(三):Hi3516虚拟机基础环境搭建之交叉编译环境境搭建以及开机启动脚本分析》。
交叉编译
步骤一:复制解压

步骤二:配置交叉编译器
先检查交叉编译器,如下图:

步骤三:修改平台文件
cd /home/yang/work/src/qt-everywhere-src-5.12.7/qtbase/mkspecs/linux-arm-gnueabi-g++
gedit qmake.conf

选择的是linux-arm-gnueabi-g++平台,修改器配置文件的编译器如下:
#
# qmake configuration for building with arm-linux-gnueabi-g++
#
MAKEFILE_GENERATOR = UNIX
CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib
include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)
# modifications to g++.conf
#QMAKE_CC = arm-linux-gnueabi-gcc
#QMAKE_CXX = arm-linux-gnueabi-g++
#QMAKE_LINK = arm-linux-gnueabi-g++
#QMAKE_LINK_SHLIB = arm-linux-gnueabi-g++
QMAKE_CC = arm-himix200-linux-gcc
QMAKE_CXX = arm-himix200-linux-g++
QMAKE_LINK = arm-himix200-linux-g++
QMAKE_LINK_SHLIB = arm-himix200-linux-g++
# modifications to linux.conf
#QMAKE_AR = arm-linux-gnueabi-ar cqs
#QMAKE_OBJCOPY = arm-linux-gnueabi-objcopy
#QMAKE_NM = arm-linux-gnueabi-nm -P
#QMAKE_STRIP = arm-linux-gnueabi-strip
QMAKE_AR = arm-himix200-linux-ar cqs
QMAKE_OBJCOPY = arm-himix200-linux-objcopy
QMAKE_NM = arm-himix200-linux-nm -P
QMAKE_STRIP = arm-himix200-linux-strip
load(qt_config)
步骤四:配置qt源码configure
./configure -prefix /home/yang/work/rootfs \
-opensource -confirm-license -release \
-linuxfb -qt-zlib -no-gif -qt-libpng \
-qt-libjpeg -qt-freetype -no-rpath -no-pch \
-no-avx -no-openssl -no-cups -no-dbus -no-eglfs \
-no-pkg-config -no-glib -no-iconv -no-opengl \
-xplatform linux-arm-gnueabi-g++ -make libs \
-nomake tools -qt-sqlite -nomake tests -v \
-skip qtgamepad \
-skip qtandroidextras \
-skip qtmacextras \
-skip qtx11extras \
-skip qtsensors \
-skip qtserialbus \
-skip qtwebchannel \
-skip qtwebsockets \
-skip qtlocation \
-skip qtquickcontrols \
-skip qtpurchasing \
-skip qtconnectivity \
-skip qtscxml \
-skip qtxmlpatterns \
-skip qtnetworkauth \
-skip qtspeech \
-skip qtscript \
-skip qtremoteobjects \
-skip qtcharts \
-skip qtdatavis3d \
-skip qtwebview
如下:

步骤五:编译make
make -j8
(注意:先是g++编译生成对应的qmake,后是arm-himix200-linux-g++编译生成对应的qt库)

出现“python: command not found”编译错误,如下:

安装pathon(python3的命令是:python3,此处是python),所及即便是已经安装了python3也需要安装python,当然也可以建立软连接python指向python3,笔者选择安装:
sudo apt-get install python
然后继续编译:
make -j8
非常漫长的额等待,都出去吃了个饭了…

步骤六:安装Qt
make install

步骤七:检查Qt

安装Qt5.12.17的ubuntu版本
步骤一:复制

步骤二:安装Qt


(PS:注意断网,不然需要登录qt账号)




整理一下/home下的东西,继续安装:




步骤三:新建一个Qt程序,运行“Hello world!!!”


出现老问题:

参照博文:《关于 编译QT项目时报错: error: cannot find -lGL 的解决方法》解决后,继续编译。

步骤四:宿主机运行“Hello world!!!”
添加个QLabel,写上你第一次接触编程的“Hello world!!!”,如下图:

上一篇:《Hi3516开发笔记(六):通过HiTools使用USB/串口将uboot、kernel、rootfs和userdata按照分区表烧写镜像》
下一篇:《Hi3516开发笔记(八):Hi3516虚拟机交叉开发环境搭建之配置QtCreator开发交叉编译环境》敬请期待…
若该文为原创文章,转载请注明原文出处
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/121706290
Hi3516开发笔记(七):Hi3516虚拟机交叉开发环境搭建之交叉编译Qt的更多相关文章
- 【Cocos2d-X开发笔记】第一期 Cocos2d-X的环境搭建
作者今天开始正式开始学习Cocos2d-X引擎进行游戏编程,预计两天会更新一期,最后实现ios游戏的appsore上线. (部分内容转载自:http://blog.csdn.net/yan ...
- Yocto开发笔记之《快速入门,环境搭建 & 编译》(QQ交流群:519230208)
开了一个交流群,欢迎爱好者和开发者一起交流,转载请注明出处. QQ群:,为避免广告骚扰,申请时请注明 “开发者” 字样 ======================================== ...
- Hi3516开发笔记(三):Hi3516虚拟机基础环境搭建之交叉编译环境境搭建以及开机启动脚本分析
前言 前面进行了可以传输,那么写一个简单的C程序来交叉编译并传入运行. 虚拟机 上一篇搭建的虚拟机环境,包含了sftp传递文件,网络能ping通,基于上一篇的虚拟机继续搭建. 海思交叉 ...
- Solon 开发,七、自定义注解开发汇总
Solon 开发 一.注入或手动获取配置 二.注入或手动获取Bean 三.构建一个Bean的三种方式 四.Bean 扫描的三种方式 五.切面与环绕拦截 六.提取Bean的函数进行定制开发 七.自定义注 ...
- Bytom Dapp 开发笔记(二):开发流程
简介 这章的内容详细分析一下涉及智能合约Dapp的整个开发流程,注意是涉及只能合约,如果你只要一些基本转BTM功能没有太大意义,本内容补充一下官方提供的 比原链DAPP开发流程,详细实践过好踩到的一些 ...
- 跟我一起,利用bitcms内容管理系统从0到1学习小程序开发:一、IIS下SSL环境搭建
缘起 1.从事互联网十来年了,一直想把自己的从事开发过程遇到的问题给写出来,分享给大家.可是可是这只是个种想法,想想之后就放下了,写出来的类文章是少之又少.古人说无志之人常立志,有志之人立长志.今天, ...
- [游戏开发日志]Windows下Cocos2d-x 3.14环境搭建
总介绍 我们小组使用的是cocos2d-x的游戏开发引擎,因此在所有开发工作之前,我们需要对这个引擎进行环境的搭建. 搭建过程 VS2013的下载和安装 VS只是作为一个开发环境而已,简单来说就是敲代 ...
- Ionic-wechat项目边开发边学(一):环境搭建和创建一个项目
之前学AngularJS,教程过了一遍觉得很简单,但真正写几个Demo就错误百出,一个小小的功能要折腾很久.所以这次学Ionic,准备以开发一个项目为切入点去学,那么问题来了,开发什么项目呢? 纠结了 ...
- 【开发板试用报告】鸿蒙OS环境搭建及代码烧录
鸿蒙系统的代码编译环境需要linux系统,软件开发和代码烧录需要windows环境. Linux环境 参考官方链接:https://gitee.com/openharmony/docs/blob/ma ...
- Python学习笔记 (1)Hello World(环境搭建+输出Hello World!)
随想 高考发挥失常.科三遇火车发挥失常,各种不顺……突然发现假期都快没了,才想起高考前想象的这个假期要做的一堆事,现在来多完成一件吧. 这几篇博客仅只是我的学习笔记,凑合看吧.我这个python小白看 ...
随机推荐
- [转帖]Kafka之ack机制
前言 之前的博客里说了,Kafka的消息同步是一种ISR机制,本质上是"完全同步"的一种优化. 都在说,消息被ISR中所有副本都写入才算写入成功.但是这样未免定的太死板了,所以,K ...
- [转帖]一个轻量的Linux运维监控脚本
https://zhuanlan.zhihu.com/p/472040635 写在前面 我的需求 嗯,有几台很老的机器,上面部署的几个很老的应用 我需要每周对机器上的一些内存,磁盘,线程,应用和数据库 ...
- 【转帖】ChatGPT的前身:InstructGPT
https://www.jianshu.com/p/6daf35cbc46a ChatGPT的论文目前还没有发布,在其官方博客(https://openai.com/blog/chatgpt/)中对方 ...
- [转帖]01-rsync备份方式
https://developer.aliyun.com/article/885783?spm=a2c6h.24874632.expert-profile.284.7c46cfe9h5DxWK 简介: ...
- 一文带你搞懂如何优化慢SQL
作者:京东科技 宋慧超 一.前言 最近通过SGM监控发现有两个SQL的执行时间占该任务总执行时间的90%,通过对该SQL进行分析和优化的过程中,又重新对SQL语句的执行顺序和SQL语句的执行计划进行了 ...
- error: Your local changes to the following files would be overwritten by merge
拉取代码出现 error: Your local changes to the following files would be overwritten by merge 解决方案 你团队其他成员修改 ...
- 无参数RCE
三种绕过姿势 gettallheaders() get_defined_vars() session_id() 题目情景 <?php if(';' === preg_replace('/[a-z ...
- Fabric-ca server端与client端交互
本文介绍Fabric-ca server端和client端的交互过程. 在server端执行Start()命令时,会调用registerHandlers()函数,其作用就是注册处理客户端请求的程序: ...
- 强化学习技巧三:Python多进程
1.Python多进程模块 Python中的多进程是通过multiprocessing包来实现的,和多线程的threading.Thread差不多,它可以利用multiprocessing.Proce ...
- C/C++ 获取主机网卡MAC地址
MAC地址(Media Access Control address),又称为物理地址或硬件地址,是网络适配器(网卡)在制造时被分配的全球唯一的48位地址.这个地址是数据链路层(OSI模型的第二层)的 ...