Hi3516开发笔记(七):Hi3516虚拟机交叉开发环境搭建之交叉编译Qt

简介: Hi3516开发笔记(七):Hi3516虚拟机交叉开发环境搭建之交叉编译Qt

前言

  前面搭建好了基础的交叉编译环境,但是我们使用到的主要是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!!!”,如下图:

  


相关文章
|
5月前
|
开发工具 C语言 Windows
【Qt 学习笔记】Qt 开发环境的搭建 | Qt 安装教程
【Qt 学习笔记】Qt 开发环境的搭建 | Qt 安装教程
214 0
|
3月前
|
存储 Linux 虚拟化
入职必会-开发环境搭建32-VMware虚拟机下载和安装
VMware虚拟机是一种基于VMware虚拟化技术的软件解决方案,它可以在一台物理计算机上创建多个独立的虚拟计算机环境。这些虚拟机可以运行不同的操作系统,如Windows、Linux等,使用户能够在单台计算机上同时运行多个操作系统。
106 0
入职必会-开发环境搭建32-VMware虚拟机下载和安装
|
2月前
|
IDE 编译器 开发工具
【Qt】如何搭建Qt开发环境
【Qt】如何搭建Qt开发环境
|
4月前
|
IDE Linux 开发工具
在Qt开发环境中qmake和cmake的区别优势
选择qmake还是CMake,主要取决于项目的需求和开发者的熟悉程度。如果你正在开发一个纯Qt项目,或者是一个不需要复杂构建脚本的小型项目,qmake可能是一个更好的选择。反之,如果你的项目需要处理复杂的依赖关系,或者你想要一个在多种编程环境中都能工作的构建系统,那么CMake可能是更好的选择。
465 2
|
4月前
|
计算机视觉
【轻松入门】OpenCV4.8 + QT5.x开发环境搭建
【轻松入门】OpenCV4.8 + QT5.x开发环境搭建
56 0
【轻松入门】OpenCV4.8 + QT5.x开发环境搭建
|
4月前
|
XML 存储 JSON
技术笔记:Qt基础之配置文件(QSettings)
技术笔记:Qt基础之配置文件(QSettings)
120 0
|
4月前
|
调度
技术笔记:QT之深入理解QThread
技术笔记:QT之深入理解QThread
36 0
|
5月前
|
编译器
QT creator开发环境下 界面更改后运行程序不能实时更新或者在源文件添加该控件后无法编译的问题
在使用QT Creator开发界面的过程中,偶尔会出现添加控件后,运行程序后,界面控件无法更新的情况,或者在源文件使用该控件却出现无法编译的情况,使用QT Creator 4.8.2也会出现这个情况,也不知道这种情况会不会在以后有所改善。
185 0
|
5月前
|
开发工具 Windows
搭建 Qt 开发环境
搭建 Qt 开发环境
|
12月前
|
计算机视觉
[笔记]OpenCV+FFmpeg+Qt实现视频编辑器之OpenCV视频lO接口
[笔记]OpenCV+FFmpeg+Qt实现视频编辑器之OpenCV视频lO接口
204 0
下一篇
无影云桌面