跳到主要内容

QT 环境搭建

1. Qt 简介

Qt 是一个功能强大的跨平台应用程序和用户界面开发框架,最初由挪威的 Trolltech(奇趣科技)公司开发,目前由 Qt Company 维护,并于 2020 年 12 月 8 日发布了全新版本 Qt 6。Qt 使用 C++ 编写,同时通过语言绑定支持多种编程语言,是构建高质量、多平台应用的理想选择。

作为一站式开发解决方案,Qt 不仅适用于图形用户界面(GUI)的开发,还支持命令行工具、网络通信、多线程、音视频处理、文件操作等功能模块,广泛应用于桌面、嵌入式和移动端应用开发。在实际应用中,Qt 的灵活性和高效性得到了充分验证,例如 Linux 版微信的主界面就基于 Qt 开发,而 Web 渲染部分采用 GTK 实现,展现了 Qt 与其他技术栈结合的能力。

Qt 的应用领域涵盖广泛,从桌面软件(如 VirtualBox、战网客户端)到嵌入式设备(消费电子、工业控制等),再到现代跨平台开发需求。它的模块化设计和出色的跨平台支持使其成为开发者构建高质量应用的首选工具,也奠定了其在开源和商业开发中的核心地位。

2. 为什么是C++?

  1. C++ 是编译型语言,具有更高的运行效率,适合需要高性能和低延迟的场景,例如嵌入式设备、后台逻辑处理、复杂的算法运算等。
  2. 对于涉及到底层系统调用、大规模多线程、网络通信等复杂逻辑的开发,C++ 提供了更强大的语言特性和更灵活的控制。
  3. 如果项目需要复用已有的 C++ 库或与底层硬件交互,直接使用 C++ 开发可以减少额外的适配工作。

实际上,很多项目会结合两者使用——用 QML 开发前端界面,用 C++ 实现核心逻辑和性能关键的部分。引入 QML 只是 Qt 5 提供的另外一种选择,并不是让它成为唯一的选择。

3. QT 版本

  • Qt 商业版

    商业版提供专有许可,需要购买许可证来使用。这适用于希望在不共享源代码的情况下开发商业软件的公司和开发人员

  • Qt 免费开源版

    开源版根据 GNU Lesser General Public License (LGPL) 和 GNU General Public License (GPL) 发布。这意味着用户可以免费使用 Qt,但必须遵守特定的开源许可条款

  • Qt 的历史版本

    版本发布年份关键特性
    Qt 1.x1996初始发布,专注于 X11 平台
    Qt 2.x1999引入了对 Microsoft Windows 的支持
    Qt 3.x2001添加了许多新功能,包括网络和 XML 支持
    Qt 4.x2005重大改进,增强了跨平台支持和图形视图框架
    Qt 5.x2012专注于现代硬件的性能,引入了 QML 和 Qt Quick 用于开发流畅的动画和触摸界面
    Qt 6.x2020进一步增强了性能和功能,针对未来的软件开发趋势进行了优化,包括对 3D 图形的支持

本教程将指导您如何在 Buildroot 系统中搭建 Qt5 环境。尽管 Qt6 提供了诸多重大更新和改进,例如更好地支持现代 C++ 标准和图形引擎的优化,但 Qt5 仍然具有以下优势:更广泛的兼容性、成熟的稳定性、丰富的第三方库和插件支持,以及详尽的文档和活跃的社区支持。

4. Qt 安装(PC Ubuntu22.04 环境)

  1. 下载 Qt 的安装包:

  • 如果官网无法访问,可以从网盘下载:

    百度网盘下载
    谷歌网盘下载
  1. QT 账号注册非常简单,只需登录 QT 官方网站,填写邮箱完成注册即可,此处不再赘述。

    https://login.qt.io/login
  2. 将下载的安装包传输到 Ubuntu 主机或者虚拟机上,如果未注册 Qt 登录账号,需要断开网络安装可以跳过账号登录。

    chmod +x qt-opensource-linux-x64-5.12.9
    ./qt-opensource-linux-x64-5.12.9
  3. 安装过程:

  4. 完整安装过程:

5. Buildroot 中添加 Qt5

配置 Buildroot 添加 Qt5 的详细步骤请参考教程的《SDK 环境部署》Buildroot 配置部分。

  1. 在 buildroot 目录添加 QT5,使用关键字"Qt5"进行搜索。


6. qmake 相关配置

  1. 在 qmake 目录下增加一个文件 qt.conf

    cd /SDK目录/buildroot/output/rockchip_rk3506_luckfox/build/qt5base-da6e958319e95fe564d3b30c931492dd666bfaff/qmake
    cp ~/Qt5.12.9/5.12.9/gcc_64/bin/qt.conf .

    vim qt.conf
    #只要下面两行即可
    [Paths]
    Prefix=..
  2. 重新生成qmake软链接路径

    sudo apt install qtchooser -y
    luckfox@luckfox:~$ which qmake
    usr/bin/qmake

    sudo rm /usr/bin/qmake
    sudo ln -s /SDK目录/buildroot/output/rockchip_rk3506_luckfox/build/qt5base-da6e958319e95fe564d3b30c931492dd666bfaff/qmake/qmake /usr/bin/qmake
  3. 配置环境变量

    vim ~/.bashrc
    #末尾加入
    export PATH=/home/ubuntu/Luckfox/rk3506/luckfox-lyra-sdk/buildroot/output/rockchip_rk3506_luckfox/host/arm-buildroot-linux-gnueabihf/lib:$PATH

    source ~/.bashrc
  4. 查看 qmake 版本:

    (base) luckfox@luckfox:~$ qmake -v
    QMake version 3.1
    Using Qt version 5.15.11 in /home/ubuntu/Luckfox/rk3506/luckfox-lyra-sdk/buildroot/output/rockchip_rk3506_luckfox/host/arm-buildroot-linux-gnueabihf/sysroot/home/usr/lib

7. 配置交叉编译器

  1. 首先打开Qt Creator 选择 Tools—>Options—>Compilers。
  2. 添加 3506 GCC 名称和编辑器路径。
  3. 添加 3506 G++ 名称和编辑器路径。
  4. 设置 Qt Versions
  1. 设置 Kits

8. 创建第一个项目

  1. 新建一个 Qt 项目

  2. 给工程命名和选择存放路径

  3. 选择 q make

  4. 创建完成自己 Qt 项目之后,进入工程目录交叉编译。

    qmake && make 
    • 编译成功后会出现可执行文件:
  5. 将执行程序从Ubuntu主机(或虚拟机)上传到开发板。

    scp test-1 root@192.168.10.138:/root
  6. 在开发板上运行程序。

    chmod +x test
    ./test -platform linuxfb