1. QT运行环境测试
Ubuntu20.04
Ubuntu20.04系统默认配置好QT5.12.8运行环境
查看QT库:
Copy $ ls -l /usr/lib/aarch64-linux-gnu/libQt*
测试demo位于网盘目录:
Copy 3-SoftwareData软件资料\Qt_demo\mainwindow
将demo拷贝进系统任意目录下,进行测试:
Copy $ sudo chmod +x ./mainwindow
$ sudo ./mainwindow
Debian11
Debian11系统默认配置好QT5.15.2运行环境
查看QT库:
Copy $ ls -l /usr/lib/aarch64-linux-gnu/libQt*
测试demo位于网盘目录:
Copy 3-SoftwareData软件资料\Qt_demo\mainwindow
将demo拷贝进系统任意目录下,进行测试:
Copy $ sudo chmod +x ./mainwindow
$ sudo ./mainwindow
2. QT应用编译环境搭建
下面介绍虚拟机下安装QT和板子下安装QT的过程
gcc交叉编译工具
虚拟机:
可以在网盘中获取,网盘路径:
Copy rk356x_data\3-SoftwareData软件资料\gcc
SDK自带交叉编译工具链:(不推荐,会出现版本不兼容)
Copy (SDK)/prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/
将获取的压缩包放到虚拟机目录下进行解压
Copy $ sudo tar -xvf gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu.tar.xz -C /opt/gcc-arm
-C /opt/gcc-arm 指定解压出的路径
为了让系统能够识别交叉编译工具链,需要将其路径添加到环境变量中。
临时生效(仅当前终端会话有效)
运行以下命令:
Copy $ export PATH=/opt/gcc-arm/bin:$PATH
永久生效
编辑用户或系统的环境变量配置文件。
Copy $ sudo vim /etc/profile
export PATH=/opt/gcc-arm/bin:$PATH
验证安装
运行以下命令验证是否成功安装并配置了工具链:
Copy aarch64-none-linux-gnu-gcc --version
如果输出类似以下内容,则说明安装成功:
Copy aarch64-none-linux-gnu-gcc (GNU Toolchain for the A-profile Architecture) 9.2.1 20191203
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
qmake工具安装
qmake工具是用于Qt项目根据工程文件.pro生成MakeFile的工具。对于简单的工程,只需要在工程的顶层目录运行qmake。默认情况下,qmake会生成一个构建工程的MakeFile,此时可以运行平台相关的make工具构建工程。
Copy rk356x_data\5-DevelopmentTools开发工具\QT
官网链接:
访问官网选择下载需要的版本
选择single
选择tar.xz
安装依赖
Copy $ sudo apt-get install build-essential perl python3 git
$ sudo apt-get install '^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev
$ sudo apt-get install flex bison gperf libicu-dev libxslt-dev ruby
$ sudo apt-get install libxcursor-dev libxcomposite-dev libxdamage-dev libxrandr-dev libxtst-dev libxss-dev libdbus-1-dev libevent-dev libfontconfig1-dev libcap-dev libpulse-dev libudev-dev libpci-dev libnss3-dev libasound2-dev libegl1-mesa-dev gperf bison nodejs
$ sudo apt-get install libasound2-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
$ sudo apt-get install libgstreamer-plugins-bad1.0-dev
$ sudo apt install clang libclang-dev
$ sudo apt-get install xz-utils
$ sudo ln -s /usr/bin/python3 /usr/bin/python
下载后进行解压在opt文件夹中
Copy $ sudo tar -xvf qt-everywhere-src-5.12.2.tar.xz -C /opt/
解压完成后进入文件夹,并建立auto.sh脚本文件。
Copy #!/bin/bash
./configure \
-prefix /opt/Qt/ \
-opensource -confirm-license \
-nomake examples \
-nomake tests \
-release \
-xplatform linux-aarch64-gnu-g++ \
-device-option CROSS_COMPILE=/opt/gcc-arm/bin/aarch64-none-linux-gnu- \
-no-eglfs \
-no-xcb \
-no-opengl \
-skip qt3d \
-skip qtcharts \
-skip qtandroidextras \
-skip qtlocation \
-skip qtmultimedia \
-skip qtsensors \
-skip qtserialbus \
-skip qtserialport \
-skip qtwayland \
-skip qtdeclarative \
-skip qtxmlpatterns \
-skip qtwebchannel \
-skip qtwebengine \
Copy $ sudo chmod 755 auto.sh
$ sudo ./auto.sh
脚本是为了执行./configure
-prefix /opt/Qt/ \ Qt安装路径
-opensource -confirm-license \ 安装版本,社区版还是商业版
-nomake examples \ 不编译安装例子
-nomake tests \ 不编译安装测试
-release \ release编译
-xplatform \指定目标平台
-skip \跳过编译模块
qtlocation qtwebengine ,如果不是特别需要这两个模块,建议放弃编译
这些命令在解压后的README中有说明
执行后根据提示进行改进,大部分提示错误是依赖安装不全
执行编译
时间较长,基于性能4-12小时
完成后执行
此命令会将程序安装在上面-prefix指定的/opt/Qt/ 中。
安装成功后修改环境变量:
Copy $ sudo vim /etc/profile
Copy export QTDIR=/opt/Qt
export PATH=$QTDIR/bin:$PATH
export MANPATH=$QTDIR/man:$MANPATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
Copy $ source /etc/profile
最后执行
安装qtcreator
安装qtcreator必须先安装Qt,用Qt编译qtcreator,如果编译Qt出错,这个位置编译也会出错。如果Qt编译时,有未编译的模块或者含有不依赖的模块,qt编译不受影响,但是qtcreator会有影响。我试过加-no-opengl \,编译qt没有错误,安装也可以,编译qtcreator出错。
虚拟机可以选择安装包程序安装,同时可以安装其他在本机运行的包
下载后到虚拟机中运行安装程序
下载完成后解压
这里默认上面教程以完成好以后:
进入解压路径,执行
等待完成后生成MakeFile文件。
然后执行
等待编译完成后,执行
执行完
打开bin文件夹就会有qtcreator和qtcreator.sh
执行
这样qtcreator会在后台运行。
最后配置qtcreator即可。
QT交叉编译的Kit配置
下面介绍QT创建QT项目时的使用交叉编译工具的配置
Kits主要是选择gcc、g++为交叉编译工具链中的,qmake使用编译出的qmake
添加GCC中C、C++
添加qmake
最终配置