Qt 在windows 和linux 下的编译教程

2023-05-16

Qt 源码下载地址:https://download.qt.io/archive/qt/

打开上面的网址,进入 submodules 目录下载 qtbase-everywhere-src-6.4.2.zip,这里不推荐下载 signal 目录下的源码 压缩包,signal 目录下的源码包含了所有模块,很多模块并不需要使用,并且在编译的时候需要安装非常多的依赖,非常麻烦。qtbase 可以理解为 Qt 的基础库,写普通的 Widget 程序已经完全满足,如果需要其他模块,下载再编译即可。

注意:Qt 已经发布了很多版本了,在比较新的版本,要求的基础库的版本比较高。需要根据操作系统版本选择源码版本。例如 Qt 6.4 要求 GCC >= 9.0

我的经验是 2022 年之前的系统,使用 5.15 的版本,2022 年之后的系统,一般都可以上 6.X

Linux

    • 安装编译环境

源码下载好之后,就需要安装编译环境了,在 linux 下安装编译环境非常简单。

sudo apt install build-dep qtbase-opensource-src

遇到一下报错请在源的添加 src。

2. 编译源码

编译环境安装好之后,就可以开始愉快编译了。

编译一个工程,首先需要对工程进行配置,Qt 的源码源码配置是通过 configure 文件配置的,查看源码目录的 configure_help.txt 可以看到所有的配置选项。

里面的选项比较多,这里我直接给出一个通用的配置,已经包含了运行的大部分需求,当需要某些功能的时候,再去阅读 configure_help.txt即可。--prefix="/opt/usr" 表示 install 的目录,根据需求自行修改。

./configure -confirm-license --prefix="/opt/usr" -opensource -plugin-sql-mysql -plugin-sql-sqlite -no-sql-sqlite2 -plugin-sql-tds -system-sqlite -system-harfbuzz -system-zlib -system-libpng -system-libjpeg -system-doubleconversion -system-pcre -openssl -no-rpath -verbose -optimized-qmake -dbus-linked -no-strip -no-separate-debug-info -qpa xcb -xcb -glib -icu -accessibility -nomake examples -nomake tests -no-directfb -no-use-gold-linker -debug -opengl desktop -recheck-all

让出现 Qt is now configured for building 表示配置完成,可以开始编译了。其他报错根据提示解决即可。

当配置完成之后,根据提示 make install -j16 即可开始编译。-j 参数根据处理器核心数决定。实测 I7-10700 8核16线程大约需要15分钟左右。

Windows

windows 下编译Qt 源码见: https://blog.csdn.net/AAALB/article/details/122762388 。写的比较详细

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt 在windows 和linux 下的编译教程 的相关文章

  • 检测目录中是否有某些内容被修改,如果是,则备份 - 否则不执行任何操作

    我有一个 数据 目录 我通过 shell 脚本定期同步到远程 NAS 但是 我想让这变得更有效率 我想在运行 rsync 之前检测 数据 中是否发生了变化 这样我就不会不必要地唤醒 NAS 上的驱动器 我正在考虑修改 shell 脚本以获取
  • 共享库 RPATH 和二进制 RPATH 优先级

    如果共享库链接到二进制文件 并且共享库还依赖于其他库 则共享库的 RPATH 和二进制文件的 RPATH 的优先级 链接器搜索顺序 是什么 二进制文件的 RPATH 是否可以覆盖共享库中的 RPATH 我在共享库RPATH中设置的 ORIG
  • 如何检查窗口在用户屏幕上是否完全可见?

    有没有办法检查 WinForm 在屏幕上完全可见 例如是否超出屏幕范围 我已经尝试使用 SystemInformation VirtualScreen 来实现此目的 只要虚拟屏幕是一个矩形 它就可以很好地工作 但是一旦它不是 例如 L 形的
  • UNIX 域 STREAM 和 DATAGRAM 套接字之间的区别?

    这个问题是NOTSTREAM 类型和 DATAGRAM 类型 INTERNET 套接字之间的区别 我知道 STREAM 套接字使用 TCP 数据报套接字使用 UDP 以及所有 TCP UDP 内容 按顺序到达的数据包 ACK NACK 等
  • 如何检查应用程序的另一个实例是否正在运行[重复]

    这个问题在这里已经有答案了 有人可以展示如何检查程序的另一个实例 例如 test exe 是否正在运行 如果是 则停止加载应用程序 如果存在该实例 想要一些严肃的代码吗 这里是 var exists System Diagnostics P
  • 强制 Java 最低版本以“java -version:”运行在 Windows 上不起作用

    我想强制应用程序运行的 JVM 最低版本为 1 6 或更高版本 即 1 6 我的理解是 您可以使用 version 命令行参数来执行此操作 我尝试了一下 在Linux下似乎可以正常工作 但在Windows下却不行 LINUX 我在 Linu
  • 如何在不需要设置 LD_LIBRARY_PATH shell 变量的情况下输入“cargo run”?

    我构建了一个 Rust 程序 通过 C 接口调用 C 函数 为了执行该程序 我必须运行 export LD LIBRARY PATH
  • 关于在 Windows 上使用 WiFi Direct Api?

    我目前正在开发一个应用程序 我需要在其中创建链接 阅读 无线网络连接 在桌面应用程序 在 Windows 10 上 和平板电脑 Android 但无关紧要 之间 工作流程 按钮 gt 如果需要提升权限 gt 创建类似托管网络的 WiFi 网
  • 在 Windows 上部署 Meteor

    我觉得很奇怪的是 没有关于如何将自己的 Meteor Web 应用程序部署到自己的 Windows 服务器上的详细分步说明 或者也许我只是无法使用谷歌找到这样的解释 在很多页面上 甚至在关于 SO 的一些问题上 我发现人们只是简单地说 bu
  • 有适用于 Windows 的 Bonjour SDK 吗?

    我想知道如何在 Windows 上实现 bonjour 以便我可以在 Windows 上设置服务器并使用 iphone 客户端 中的 bonjour 服务访问 Windows 服务器 中的文件 谁能告诉我我们是否有适用于 Windows 的
  • SSD 上的 MySQL 基准测试:工具和策略

    我目前正在将我的服务器从在硬盘驱动器上运行 MyISAM 切换到在 SSD 上运行 InnoDB 我有一个3 800 000 行 16GB 表作为基准表 我的服务器设置 Ubuntu 64 Nginx MySQL 5 5 我心里有两件事我想
  • ngx_http_brotli_filter_module.so" 与 /etc/nginx/nginx.conf:1 中的二进制不兼容

    Using Nginx 1 17 3 and Nginx 1 14 0在两台独立服务器上的 Ubuntu 18 上 两者都显示相同的错误ngx http brotli filter module so is not binary compa
  • Linux 汇编调试器

    我需要一个在 Linux 上进行汇编的调试器 我对 Linux 上缺乏调试器感到非常惊讶 它应该具有各种功能 例如显示寄存器等等 我会使用 GDB 但它对 NASM 不太友好 我宁愿让调试器具有英特尔语法 但我可以做出牺牲 我尝试过 kdb
  • 复制稀疏文件

    我正在尝试了解 Linux UNIX 低级接口 作为练习 我想编写一个代码 将一个有漏洞的文件复制到一个新文件 同样有漏洞 所以我的问题是 如何从第一个文件读取 而不是直到第一个洞 而是直到文件的最后 如果我没错的话 read 当到达第一个
  • 使用 C++ 更改终端字体大小

    我正在用 C 做一个小项目 在 Ubuntu 11 04 中 该程序是基于文本的 全部在 Gnome 终端中 我正在使用 ncurses 库来更改字体颜色 但我也想将不同大小的文本打印到终端 并且不知道如何使用 ncurses 来做到这一点
  • 如何使用 msilib 从 python 模块创建 .msi 文件的示例

    谁能给我一个如何使用 python 的例子msilib http docs python org library msilib html标准库模块从自定义 python 模块创建 msi 文件 例如 假设我有一个名为 Cool py 的自定
  • 如何在 Windows 上设置 Node.js 的工作目录?

    我刚刚安装了 Windows 版的 Node js 运行它真的是轻而易举 我想将它用作构建过程的一部分 将多个文件组合在一起 如下所示 settings var FILE ENCODING utf 8 EOL n DIST FILE PAT
  • Linux C++ 调试器

    我正在寻找完美的 Linux C 调试器 我不期望成功 但搜索应该提供丰富的信息 我是一个非常有能力的 gdb 用户 但 STL 和 Boost 很容易压垮我的调试技能 并不是说我无法深入了解数据结构的内部结构 而是它需要很长时间 我通常会
  • Windows 故障转储调用堆栈仅显示 wow64

    Problem 我有一个我们开发的供内部使用的 Windows 应用程序 感谢 Windows 错误处理 窗口保持打开状态 我可以轻松地从任务管理器生成故障转储 我以前曾通过 eclipse 在 linux 上使用过一次故障转储 但这是第一
  • BASH:[ ](测试)行为不一致

    在我的狂欢中test有态度以身份退出0 test n echo true echo false gt true while test n echo true echo false gt false 这意味着当它根本没有收到任何参数时 它假设

随机推荐

  • 使用集群中唯一一个MON恢复集群ceph-mon服务(记一次故障恢复)

    使用集群中唯一一个MON恢复集群ceph mon服务 记一次故障恢复 xff09 概述 当集群因为某些故障导致mon集群损坏 xff0c 或者多个mondb混乱 xff0c 此时ceph mon服务不可用 xff0c 既所有ceph命令会卡
  • virtualbox虚拟机的配置如何优化

    以下是一些可能有用的提示 xff0c 可帮助您优化VirtualBox虚拟机的性能和配置 xff1a 分配足够的内存和处理器资源 xff1a 在配置虚拟机时 xff0c 确保为虚拟机分配足够的内存和处理器资源 xff0c 这将有助于提高虚拟
  • 【单片机】【笔记】定时器初值的计算

    晶振频率 11 0592M 机器频率 11 0592 12 61 921600个 每秒 每个机器周期 xff0c 定时器计数值加1 当数值为0 xff0c 256 xff0c 65536时 xff08 TH TL同时为0时 xff09 xf
  • vue项目打包成apk安装包详细步骤

    第一步 下载HbuilderX DCloud官网 HBuilderX下载地址 第二部 创建5 43 App项目 完事点创建 得到这么个玩意 把没用的都干掉 xff0c 留下manifest json就行了 然后把打包好的vue项目的内容拿来
  • Hyper-v安装及使用详细教程

    安装 前面先用了VMware xff0c 以为比较方便安装时不用自己配置 xff0c 结果还是要自己配置 那今天来试下win10自带的Hyper v 首先打开设置 应用 程序和功能 启用或关闭 Windows 功能 找到 Hyper v 勾
  • windows11 安装安卓子系统,玩转安卓APP

    开启Hyper v 将Hyper v勾上 xff0c 确定 xff0c 重启电脑 安装windows subsystem for Android 百度盘链接 提取码 xff1a gby8 下载完成之后直接打开安装会提示安装失败 因此需要使用
  • Ubuntu使用

    买了个Redmibook 15 Pro 锐龙版 xff0c 比较方便携带 xff0c 打开尝试了一下就把系统重装了 xff0c 据说linux系统更适合开发 xff0c 因此装了ubuntu20 10 安装 之前有写过在虚拟机安装 xff0
  • go语言使用jwt认证

    这几天在学习nodejs xff0c 进一步了解npm xff0c 学习过程中解开了以前的一个疑惑 xff0c 以前不知道token可以携带信息 xff0c 只以为是用来做对比的 xff0c 学到了jwt身份认证 xff0c 知道了如何使用
  • 注册Office教育版账号流程实现oneDrive1TB储存

    正常的个人微软账号使用oneDrive只有5GB的储存空间 xff0c 可以通过注册office教育版账号获取oneDrive有1TB储存空间的账号 临时教育邮箱 如果使用普通邮箱注册只能注册个人免费账号 xff0c 如下图 xff0c 也
  • windows 安装 gcc 编译 fyne 项目

    fyne官网 一 说明 可以看到官网写的 xff0c 如果是第一次使用 xff0c 需要安装 go 语言 xff0c 安装 gcc xff0c 获取 fyne 依赖 xff0c 其中麻烦点的就是 gcc xff0c 如果不安装 gcc xf
  • 解决 Go 语言使用 cmd 命令,在控制台输出的中文内容为乱码

    场景 xff1a 在使用 fyne 做一个小桌面程序的时候 xff0c 用到了 cmd 命令 xff0c 如果遇到了错误就进行判断或使用 label 输出错误 xff0c 结果输出的中文是乱码的 因为终端使用的是 gbk 编码 xff0c
  • Windows 安装 Docker Desktop 到其他盘、迁移虚拟硬盘映像文件、压缩虚拟硬盘映像占用空间

    一 建立软连接 首先先建立软连接 xff0c 将 Docker 默认安装的目录链接到其他盘 xff0c 这个最好使用 windows 自带的终端 xff0c 使用 powershell 有可能会识别不到 mklink 命令 mklink j
  • python中pip安装的包都在哪里?

    1 windows的话 xff0c 在cmd中使用 pip list 查看已安装的包名2 windows的话 xff0c 在cmd中然后用 pip show 包名 xff0c 就可以看到安装到哪了 3 练习 xff1a 将pymysql通过
  • Rust 基础(一)

    Rust 1 65 发布于2022 11 03 一 安装 配置环境变量 RUSTUP HOME Rustup元数据和工具链将被安装到Rustup主目录中 默认 xff1a USERPROFILE rustup CARGO HOME Carg
  • 定制适用于ARM平台的Ubuntu rootfs(根文件系统)

    0 背景 有一个很厉害的师兄针对我们实验室的需求设计了一块控制板 xff0c 以beaglebone为基础 xff0c 由于更改了一些底层的硬件 xff0c 所以重新定制编译的内核 xff0c 并预先烧写到了板子的flash中 现在需要安装
  • Win10使用附件中的远程桌面连接Ubuntu 16.04图形界面(xrdp方法)

    Ubuntu16 04下 以下命令行皆是在终端中运行 xff1a 安装xrdp sudo apt get install xrdp 安装vnc4server sudo apt get install vnc4server 安装xubuntu
  • CMake构建OpenCV项目

    文章目录 前言一 基本概念二 操作步骤1 创建OpenCV程序2 创建CMake文件3 编译项目4 运行项目 总结 前言 CMake是个一个开源的跨平台自动化建构系统 xff0c 用来管理软件建置的程序 xff0c 并不依赖于某特定编译器
  • 5GC基础:架构和网元

    1 主要内容 5GC xff08 SA xff09 架构介绍 5GC主要网元及功能对比 5GC网络架构的主要变化 SBA架构网元的注册 发现与选择CUPS边缘计算MM和SM的分离计算与存储的解耦与非3GPP的互操作能力开放PCC架构的变化
  • visual studio进入时许可证已过期解决方案

    新手小白 xff0c 记录一下 问题 xff1a 解决步骤 xff1a 1 打开visual studio installer gt 点击更多 gt 点击修复 2 等待更新安装 xff08 耗时略微有些长 xff09 3 点击启动 xff0
  • Qt 在windows 和linux 下的编译教程

    Qt 源码下载地址 xff1a https download qt io archive qt 打开上面的网址 xff0c 进入 submodules 目录下载 qtbase everywhere src 6 4 2 zip xff0c 这