zoukankan      html  css  js  c++  java
  • 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无关的代码)

     

    前提

     

    交叉编译

    步骤一:复制解压

      在这里插入图片描述

    步骤二:配置交叉编译器

      先检查交叉编译器,如下图:
      在这里插入图片描述

    步骤三:修改平台文件

    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

  • 相关阅读:
    Java.Io 初步了解
    Java 对象序列化与反序列化
    Java
    Java
    Java
    实现文件拷贝
    Java
    Java 国际化标准程序实现
    【C#】分享带等待窗体的任务执行器一枚
    解决64位Windows2003程序字体很小的问题
  • 原文地址:https://www.cnblogs.com/qq21497936/p/15648383.html
Copyright © 2011-2022 走看看