Linux篇 三、香橙派Zero2搭建Qt环境

香橙派Zero2系列文章目录

一、香橙派Zero2设置开机连接wifi
二、香橙派Zero2获取Linux SDK源码
四、Linux修改用户名
五、Ubuntu与Linux板卡建立NFS服务

文章目录

  • 香橙派Zero2系列文章目录
  • 前言
  • 一、下载交叉编译工具
  • 二、编译QT库
    • 1.先去网站下载Qt的资源包
    • 2.解压
    • 3.开始移植:
    • 4.编译:
    • 5.安装:
  • 三. 安装QT
    • 1.配置QT
      • 1.打开qt
      • 2.点击 工具-选项-Kits-编译器
      • 3.在编译器的Manual中添加GCC和C++路径为交叉编译工具的路径
      • 4.在Qt Versions中添加qmake为编译好的qt目录
      • 5.构建套件Kit设置
    • 2.编译Qt任意例子
    • 3.使用打包命令打包程序上传到OrangePi
    • 4.成果
  • 总结


前言

主要讲述了移植QT的过程


一、下载交叉编译工具

默认在香橙派篇2中,已经成功拉取Linux的SDK源码的情况下

如果失败的话,可以直接去官网下载交叉编译工具

 cd orangepi-build//toolchains/

此处路径和上一篇的源码下载路径相同
ls 查看交叉编译工具链

Linux篇 三、香橙派Zero2搭建Qt环境_第1张图片
选择gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu

home目录下创建user文件夹

复制到user里

路径根据实际情况填写

sudo cp -r gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/ /home/cheng/user/

改名字,赋予权限

mv gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/ gcc-aarch64-linux-gnu

sudo chmod -R 777 gcc-aarch64-linux-gnu

/home/cheng/user/gcc-aarch64-linux-gnu/bin 添加到环境变量里面

sudo gedit /etc/profile

Linux篇 三、香橙派Zero2搭建Qt环境_第2张图片

在末尾添加,视情况而定

export PATH="/home/cheng/user/gcc-aarch64-linux-gnu/bin:$PATH"

重启让环境变量生效,或者

reboot

source  /etc/profile

查看是否安装成功

aarch64-linux-gnu-gcc -v

Linux篇 三、香橙派Zero2搭建Qt环境_第3张图片

二、编译QT库

1.先去网站下载Qt的资源包

https://download.qt.io/archive/qt/5.9/5.9.0/single/

本次以5.9.0版本为主

2.解压

 tar -xvf qt-everywhere-opensource-src-5.9.0.tar.xz

Linux篇 三、香橙派Zero2搭建Qt环境_第4张图片

3.开始移植:

1、修改qmake.conf文件,如下:

gedit qt-everywhere-opensource-src-5.9.0/qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf 

 #
 # 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)
   
 QT_QPA_DEFAULT_PLATFORM = linuxfb
 QMAKE_CFLAGS_RELEASE += -O2 -march=armv8-a                                                                                                                                                              
 QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv8-a
   
 # modifications to g++.conf
 QMAKE_CC                = aarch64-linux-gnu-gcc
 QMAKE_CXX               = aarch64-linux-gnu-g++
 QMAKE_LINK              = aarch64-linux-gnu-g++
 QMAKE_LINK_SHLIB        = aarch64-linux-gnu-g++
   
 # modifications to linux.conf
 QMAKE_AR                = aarch64-linux-gnu-ar cqs
 QMAKE_OBJCOPY           = aarch64-linux-gnu-objcopy
 QMAKE_NM                = aarch64-linux-gnu-nm -P
 QMAKE_STRIP             = aarch64-linux-gnu-strip
 load(qt_config)

回到 qt-everywhere-opensource-src-5.9.0 创建一个脚本文件

touch qt_config.sh
sudo chmod 777 qt_config.sh
gedit qt_config.sh

输入以下内容:(具体 .configure 配置详解请参考链接:https://blog.csdn.net/xi_gua_gua/article/details/53413930)

  #!/bin/sh  
 ./configure -prefix /opt/qt-5.9.0orangepizero2 \
 -opensource \
 -release \
 -no-pch \
 -confirm-license \
 -xplatform linux-arm-gnueabi-g++ \
 -shared \
 -qt-zlib \
 -no-iconv \
 -no-gif \
 -qt-libjpeg \
 -no-opengl \
 -no-cups \
 -no-glib \
 -no-dbus \
 -no-rpath \
 -no-sse2 -no-sse3 -no-ssse3 -no-sse4.1 -no-sse4.2 \
 -no-avx  \-nomake tools \
 -qreal float \
 -qt-libpng \
 -no-compile-examples \
 -skip qtdeclarative \
 -no-openssl                                                                                                                                                                                           

-prefix /opt/qt-5.9.0orangepizero2 是编译后的安装目录。是个人选择的

完成以后在qt-everywhere-opensource-src-5.9.0 输入以下命令

sudo ./qt_config.sh

如果提示

Linux篇 三、香橙派Zero2搭建Qt环境_第5张图片
那就重新设置一下环境变量

不要直接复制我的,每个人设置的环境变量都不一定一样,根据你前面设置的来

export PATH="/home/cheng/user/gcc-aarch64-linux-gnu/bin:$PATH"

Linux篇 三、香橙派Zero2搭建Qt环境_第6张图片
到这里就可以开始编译了

4.编译:

我的虚拟机给了8个线程,所以是j8

sudo make -j8 

编译成功
Linux篇 三、香橙派Zero2搭建Qt环境_第7张图片

到这里就说明编译成功了

5.安装:

sudo make install

Linux篇 三、香橙派Zero2搭建Qt环境_第8张图片
可以看到在/opt目录已经有了qt的内容

Linux篇 三、香橙派Zero2搭建Qt环境_第9张图片

三. 安装QT

在里默认已经在虚拟机的Ubuntu上安装好了qt

1.配置QT

1.打开qt

Linux篇 三、香橙派Zero2搭建Qt环境_第10张图片

2.点击 工具-选项-Kits-编译器

Linux篇 三、香橙派Zero2搭建Qt环境_第11张图片

3.在编译器的Manual中添加GCC和C++路径为交叉编译工具的路径

交叉编译器的路径一开始我们就已经放好了

我放在了

/home/cheng/user/gcc-aarch64-linux-gnu

Linux篇 三、香橙派Zero2搭建Qt环境_第12张图片
Linux篇 三、香橙派Zero2搭建Qt环境_第13张图片

然后Apply一下

4.在Qt Versions中添加qmake为编译好的qt目录

Linux篇 三、香橙派Zero2搭建Qt环境_第14张图片

5.构建套件Kit设置

Linux篇 三、香橙派Zero2搭建Qt环境_第15张图片
注意c和c++的编译器设置

Linux篇 三、香橙派Zero2搭建Qt环境_第16张图片
Qt version 这里选择前几部添加的 Qt5.9的设置
Linux篇 三、香橙派Zero2搭建Qt环境_第17张图片
然后Apply-ok就可以了

2.编译Qt任意例子

第一个例子

/opt/qt-5.9.0orangepizero2/examples/widgets/mainwindows/mainwindow

Linux篇 三、香橙派Zero2搭建Qt环境_第18张图片

第二个例子

/opt/qt-5.9.0orangepizero2/examples/widgets/widgets/stylesheet

Linux篇 三、香橙派Zero2搭建Qt环境_第19张图片

都是只编译,不运行,运行也没用,没有特定环境,会运行失败

3.使用打包命令打包程序上传到OrangePi

程序打包上传到OrangePiZero2板子上,我把它放在了/home目录里面

Linux篇 三、香橙派Zero2搭建Qt环境_第20张图片
把目录的权限改成板子上的用户和用户组

配置OrangePi PC2环境:

sudo vim /etc/profile

在最下边加入一下内容:

export QTDIR=/home/qt-5.9.0orangepizero2 #上边让你记住的路径
export QT_QPA_FONTDIR=$QTDIR/lib/fonts
export QT_QPA_PLATFORM_PLUGIN_PATH=$QTDIR/plugins/ 
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0

让环境变量生效

source /etc/profile

cd 到第一个例子所在目录

/home/qt-5.9.0orangepizero2/examples/widgets/mainwindows/mainwindow
chmod +x mainwindow

输入

./mainwindow -platform linuxfb

4.成果

可以看到板子上已经成功运行第一个列子

Linux篇 三、香橙派Zero2搭建Qt环境_第21张图片
第二个例子

/home/qt-5.9.0orangepizero2/examples/widge/widgets/stylesheet
chmod +x stylesheet

输入

./stylesheet -platform linuxfb

Linux篇 三、香橙派Zero2搭建Qt环境_第22张图片

运行过程中出现以下情况
而且打印界面报错:

Linux篇 三、香橙派Zero2搭建Qt环境_第23张图片
这个是说找不到这个/home/qt-5.9.0orangepizero2/lib/fonts.
重新安装一下字体

sudo apt install ttf-wqy-zenhei

查看字体所在目录

fc-list :lang=zh

Linux篇 三、香橙派Zero2搭建Qt环境_第24张图片
出现了一大堆

自己可以选择使用

我使用的是

/usr/share/fonts/truetype/wqy/
//该目录下有wqy-zenhei.ttc字体文件

在这里插入图片描述
修改一下profile文件

sudo vim /etc/profile

修改如图所示,把指定字体目录添加Linux篇 三、香橙派Zero2搭建Qt环境_第25张图片

然后重启板子

就发现以上的错误消失了


总结

主要介绍了如何在香橙派Zero2上移植QT

你可能感兴趣的:(Linux记录,Ubuntu,QT应用,qt,linux,ubuntu,c语言,arm开发)