码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【QT】Ubuntu 编译安装 QT 5.12.7 源码


    目录

    1、下载 QT 源码包

    2、搭建安装环境(下载依赖库)

    3、创建QT源码编译脚本

    4、运行编译脚本

    1、下载 QT 源码包

    QT5.12.7源码下载地址:  download | QT 5.12.7

    选择任意一种下载即可,适用于 Windows 和 Linux 环境

    这里选择的是.tar.xz 类型,上传到 Linux 环境,新建一个 qt-arm目录,然后将压缩包保存到 qt-arm 目录下,并解压。

    tar xf qt-everywhere-src-5.12.7.tar.xz

    2、搭建安装环境(下载依赖库)

    1. sudo apt-get update
    2. sudo apt-get install libxcb-xinerama0-dev
    3. # sudo apt-get install python 会安装失败
    4. sudo apt-get install build-essential perl git python3
    5. # 为了支持 -qt-xcb 选项所需的库
    6. sudo apt-get install '^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev

    可能在make install 的时候会出现找不到 python 的问题,因为直接下载 python 失败,所以这里下载的是 python3,需要在 /bin 目录下创建一个软链接名为 python

    1. cd /bin
    2. sudo ln -s python3 python

    3、创建QT源码编译脚本

    由于编译 QT 库的选项较多,这里推荐使用脚本编译,在解压后的 qt-everywhere-src-5.12.7 目录下创建一个脚本文件 auto-config.sh并赋予可执行权限,基本步骤如下: 

    1. touch auto-config.sh # 创建脚本文件
    2. chmod a+x auto-config.sh # 赋予脚本可执行权限

    auto-config.sh 脚本文件的内容如下。大部分无需变动,少部分内容需要变动

    • -prefix:指定QT库的安装目录
    • -tslib:使用 tslib 库(支持触屏事件),如果使用了该选项需额外添加如下两个选项
      • -I: tslib 库的头文件目录
      • -L: tslib 库的库文件目录 

    注意: 如果使用 tslib 库,需要先对 tslib 库进行交叉编译

    1. #! /bin/sh
    2. ./configure -prefix /home/gzx/tool/qt-arm-build \
    3. -opensource \
    4. -confirm-license \
    5. -release \
    6. -strip \
    7. -shared \
    8. -xplatform linux-arm-gnueabi-g++ \
    9. -optimized-qmake \
    10. -c++std c++11 \
    11. --rpath=no \
    12. -pch \
    13. -skip qt3d \
    14. -skip qtactiveqt \
    15. -skip qtandroidextras \
    16. -skip qtcanvas3d \
    17. -skip qtconnectivity \
    18. -skip qtdatavis3d \
    19. -skip qtdoc \
    20. -skip qtgamepad \
    21. -skip qtlocation \
    22. -skip qtmacextras \
    23. -skip qtnetworkauth \
    24. -skip qtpurchasing \
    25. -skip qtremoteobjects \
    26. -skip qtscript \
    27. -skip qtscxml \
    28. -skip qtsensors \
    29. -skip qtspeech \
    30. -skip qtsvg \
    31. -skip qttools \
    32. -skip qttranslations \
    33. -skip qtwayland \
    34. -skip qtwebengine \
    35. -skip qtwebview \
    36. -skip qtwinextras \
    37. -skip qtx11extras \
    38. -skip qtxmlpatterns \
    39. -make libs \
    40. -make examples \
    41. -nomake tools -nomake tests \
    42. -gui \
    43. -widgets \
    44. -dbus-runtime \
    45. --glib=no \
    46. --iconv=no \
    47. --pcre=qt \
    48. --zlib=qt \
    49. -no-openssl \
    50. --freetype=qt \
    51. --harfbuzz=qt \
    52. -no-opengl \
    53. -linuxfb \
    54. --xcb=no \
    55. -tslib \
    56. -I/home/gzx/tool/tslib/tslib-master-build/include \
    57. -L/home/gzx/tool/tslib/tslib-master-build/lib \
    58. --libpng=qt \
    59. --libjpeg=qt \
    60. --sqlite=qt \
    61. -plugin-sql-sqlite \
    62. -recheck-all

     

    4、运行编译脚本

    开始运行编译脚本

    ./auto-config.sh

    配置完毕后,接下来开始编译安装

    make -j4 & make install

    最终在指定的安装目录下看到如下内容,且动态库文件为 arm 环境

     

    参考文章: 

    编译脚本参考: 嵌入式Qt | 如何交叉编译Qt模块_qt交叉编译-CSDN博客

    ./configure 编译选项参考: Qt 源码编译_qt源码编译_书中倦客的博客-CSDN博客

  • 相关阅读:
    Centos7下通过Docker安装并配置MINIO和NextCloud
    门罗币隐私保护之隐形地址
    linux 环境变量详解/etc/proflie
    面试必备 JVM中垃圾回收用到的三色标记法
    云开发中关于Container与虚拟机之间的比较
    ubuntu 22.04 卸载不常用软件,安装常用软件两行解决
    机器人中的数值优化(五)——信赖域方法
    Typescript 学习笔记(二)高级类型一
    南大通用GBase8s 常用SQL语句(290)
    从阿里云降价,看中国云计算创新之变
  • 原文地址:https://blog.csdn.net/challenglistic/article/details/133711670
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号