跳转至

Linux QT环境搭建

QT运行环境测试

Ubuntu20.04

Ubuntu20.04系统默认配置QT5.12.8运行环境。

1. 查看QT库

$ ls -l /usr/lib/aarch64-none-linux-gnu/libQt*

2. 将demo拷贝至系统任意目录下,进行测试:

$ sudo chmod +x ./mainwindow
$ sudo ./mainwindow

Debian11

Debian11系统默认配置QT5.15.2运行环境。

1. 查看QT库

$ ls -l /usr/lib/aarch64-none-linux-gnu/libQt*

2. 将demo拷贝至系统任意目录下,进行测试:

$ sudo chmod +x ./mainwindow
$ sudo ./mainwindow

QT交叉编译环境搭建

测试平台:虚拟机Ubuntu20.04

gcc交叉编译工具

  • SDK 自带交叉编译工具链

编译工具链路径(不推荐,会出现版本不兼容):

(SDK)/prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/
  • gcc 交叉编译链安装

从网盘中获取gcc 交叉编译链,将获取的压缩包放到虚拟机目录下进行解压,-C /opt/gcc-arm 为指定解压路径

$ sudo tar -xvf gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu.tar.xz -C /opt/gcc-arm
  • 环境变量配置

1. 若需系统正确识别交叉编译工具链,将其安装路径配置到环境变量中。

临时生效(仅当前终端会话有效):

$ export PATH=/opt/gcc-arm/bin:$PATH

永久生效:

$ sudo vim /etc/profile
export PATH=/opt/gcc-arm/bin:$PATH
source /etc/profile

2. 验证安装

验证是否成功安装并配置工具链:

aarch64-none-linux-gnu-gcc --version

输出类似内容,则安装成功:

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 安装

在Qt项目中,qmake 根据.pro工程文件生成MakeFile。在开发板中安装QT,gcc,无需修改编译工具,安装源码即可。

1. 通过网盘下载Qt / 通过访问官网下载最新Qt(历史版本Qt下载

官网下载示意图:

2. 安装所需的依赖库与工具链

$ 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

3. 将下载完成的Qt解压至opt文件夹中

$ sudo tar -xvf qt-everywhere-src-5.12.2.tar.xz -C /opt/

进入解压文件夹,建立auto.sh脚本文件

$ sudo vim auto.sh
#!/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 \

4. 修改qmake.conf文件

Note

QT源码中qtbase/mkspecs/目录下存在不同平台,示例中采用 linux-aarch64-gnu-g++ 目录下 qmake 配置文件,但因交叉编译工具链不一致,需修改 qmake.conf 文件以适配当前使用的交叉编译工具。

# modifications to g++.conf
QMAKE_CC                =/opt/gcc-arm/bin/aarch64-none-linux-gnu-gcc
QMAKE_CXX               =/opt/gcc-arm/bin/aarch64-none-linux-gnu-g++
QMAKE_LINK              =/opt/gcc-arm/bin/aarch64-none-linux-gnu-g++
QMAKE_LINK_SHLIB        =/opt/gcc-arm/bin/aarch64-none-linux-gnu-g++

# modifications to linux.conf
QMAKE_AR                =/opt/gcc-arm/bin/aarch64-none-linux-gnu-ar cqs
QMAKE_OBJCOPY           =/opt/gcc-arm/bin/aarch64-none-linux-gnu-objcopy
QMAKE_NM                =/opt/gcc-arm/bin/aarch64-none-linux-gnu-nm -P
QMAKE_STRIP             =/opt/gcc-arm/bin/aarch64-none-linux-gnu-strip

5. 运行脚本交叉配置QT源码,执行./configure

$ sudo chmod 755 auto.sh
$ sudo ./auto.sh

Note

./configure
-prefix /opt/Qt/:Qt安装路径
-opensource -confirm-license:安装 Qt 开源社区版
-nomake examples :禁止编译并安装 Qt 示例程序
-nomake tests:禁止编译并安装 Qt 测试用例与测试框架
-release:指定 Qt 以 Release 模式进行编译
-xplatform:指定 Qt 编译的目标运行平台
-qtlocation : 提供跨平台位置服务全套解决方案
-qtwebengine:基于 Chromium 内核的高性能网页渲染引擎
-skip:跳过指定 Qt 模块的编译
若项目无需位置服务或网页渲染功能,编译Qt时可通过-skip参数跳过qtlocationqtwebengine模块,大幅减少编译时间。

6. 执行编译,编译时长约4~12小时

$ sudo make -j4

编译完成执行命令将程序安装至-prefix指定的/opt/Qt/ 中。

$ sudo make install

7. 成功安装后修改环境变量

$ sudo vim /etc/profile
export QTDIR=/opt/Qt
export PATH=$QTDIR/bin:$PATH
export MANPATH=$QTDIR/man:$MANPATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
$ source /etc/profile

8. 查看版本

$ qmake -v

qtcreator 安装

Tip

安装qtcreator必须先安装Qt,可通过不同方式进行qtcreator安装,根据自身情况选择对应方式。

安装包安装

Tip

在虚拟机中安装qtcreator。

1. 进入Qt官网,选择安装包

image-20250219155414011

2. 在虚拟机中运行安装程序

Tip

需要在Qt官网注册账号,安装过程为图像化安装,安装过程和Windows保持一致。

chmod +x qt-opensource-linux-x64-5.12.2.run
./qt-opensource-linux-x64-5.12.2.run

apt 安装

Tip

在开发板中安装qtcreator。

通过apt安装对应qtcreator,可能和已安装QT版本不一致。

sudo apt update
sudo apt install qtcreator

源码安装

Tip

在虚拟机中安装qtcreator。 特殊情况需要编译特定版本Qtcreator(不推荐使用此安装方式),推荐使用与 Qt 框架版本相匹配的 Qt Creator 版本。

1. 下载Qtcreator源码

image-20241028094210629

2. 压缩包解压并进入解压路径,执行命令

$ qmaek -r

3. 执行上文命令后生成MakeFile文件,执行命令进行编译

$ sudo make -j4

4. 编译完成,执行命令

$ sudo make install

5. bin目录存在qtcreatorqtcreator.sh,执行命令,qtcreator在后台运行,根据需求配置qtcreator

$ ./qtcreator.sh &

Kit配置

1. GCC中添加C编译器C++编译器

image-20250416112806987

2. 添加qmake

image-20250416112845224

3. 配置完成

image-20250416112945015