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++平台,修改器配置文件的编译器如下:

##qmakeconfigurationforbuilding with arm-linux-gnueabi-g++#MAKEFILE_GENERATOR=UNIXCONFIG+=incrementalQMAKE_INCREMENTAL_STYLE=sublibinclude(../common/linux.conf)include(../common/gcc-base-unix.conf)include(../common/g++-unix.conf)#modificationsto 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-gccQMAKE_CXX=arm-himix200-linux-g++QMAKE_LINK=arm-himix200-linux-g++QMAKE_LINK_SHLIB=arm-himix200-linux-g++#modificationsto 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-stripQMAKE_AR=arm-himix200-linux-ar cqsQMAKE_OBJCOPY=arm-himix200-linux-objcopyQMAKE_NM=arm-himix200-linux-nm-PQMAKE_STRIP=arm-himix200-linux-stripload(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)