QT 5.15 源码windows下 msvc编译

2023-11-02

目录

1、下载 Qt 源代码

2、安装依赖项

3、配置命令行环境变量

4、构建

5、使用


1、下载 Qt 源代码

Index of /archive/qt/5.15/5.15.8/singleicon-default.png?t=N176https://download.qt.io/archive/qt/5.15/5.15.8/single/ qt-everywhere-opensource-src-5.15.8.zip

        解压后,可以看到有一个readme文件,有一些简短的说明,需要安装依赖,其中configure.bat是构造脚本。

2、安装依赖项

  •      *Perl version 5.12 or later  
  •      *Python version 2.7 or later
  •      *Ruby version 1.9.3 or later

        都从官网下载安装即可

3、配置命令行环境变量

        此处参考文档单独创建bat,内容如下:

REM Set up Microsoft Visual Studio 2017, where <arch> is amd64, x86, etc.
CALL "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Auxiliary\Build\vcvarsall.bat" <arch>
SET _ROOT=C:\Qt\Qt-5
SET PATH=%_ROOT%\qtbase\bin;%_ROOT%\gnuwin32\bin;%PATH%
REM Uncomment the below line when using a git checkout of the source repository
REM SET PATH=%_ROOT%\qtrepotools\bin;%PATH%
SET _ROOT=

其中的脚本路径 vcvarsall.bat 及  _ROOT 路径 及 <arch> 改成自己的。

  • vcvarsall.bat 是一个批处理文件,用于在 Windows 系统上设置 Visual C++ 开发环境,可以搜索 下自己文件在哪;
  • _ROOT路径设置成前面解压后的路径
  • <arch> 这里用了 amd64

4、构建

  •  打开cmd,执行下第3步中的bat,然后cd到前面解压的源码文件夹,执行下面命令,其中 -prefix指定了发布目录 C:\qt\qt5install ,自定义。
configure -prefix C:\qt\qt5 -debug -nomake examples -nomake tests -skip qtwebengine -opensource

        configure更多选项参考Qt Configure Options | Qt 5.15

  • 下一步,命令行输入 nmake,开始编译,会比较慢
nmake
  • 最后,命令行输入 nmake install 一下,就能在前面设置的目录 C:\qt\qt5install 看到最后的成果物了。

5、使用

  • vs新建一个控制台空项目,main.cpp,分别设置包含路径,链接库路径,编译完成后拷贝依赖dll,运行。
#include <qmessagebox.h>
#include <qapplication.h>

int main(int argc, char *argv[])
{
	QApplication a(argc, argv);
	QMessageBox::warning(nullptr, "test", "test");
	return 0;
}
  • 设置包含路径

  •  链接库路径

  •  生成解决方案并拷贝相关依赖

  •  结果,弹窗

 

参考:

Qt for Windows - Building from Source | Qt 5.15

记一次Qt 5.15源码编译 - 知乎

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

QT 5.15 源码windows下 msvc编译 的相关文章

  • QT 中的应用程序->处理消息?

    在 Borland 6 中 我经常使用它来解除程序操作的卡住 Application gt Processmessages 现在 对于 QT 4 8 1 我在这个外国 对我来说 QT 文档中找不到 谁能帮我 在 Qt 中 您可以使用静态函数
  • 对齐坐标系

    Let s say I have 2 coordinate systems as it is shown in image attached 如何对齐这个坐标系 我知道我需要将第二个坐标系围绕 X 平移 180 度 然后将其平移到第一个坐标
  • QToolBar 的菜单延迟

    我通过制作 QAction 并向其添加 QMenu 在 QToolBar 上有一个菜单 如何消除单击图标时出现菜单之前的延迟 QToolBar myToolBar new QToolBar this QAction myAction new
  • cx_freeze:QODBC 驱动程序未加载

    我的 python 应用程序如下所示 test py from PyQt4 import QtCore from PyQt4 import QtGui from PyQt4 import QtSql import sys import at
  • Qt GUI 编程设计

    我正在尝试创建一个 GUI 应用程序 主窗口 一个QMainWindow 包含 9 个固定大小的标签以及主窗口的大小 我尝试在没有 Qt GUI Designer 的情况下以编程方式制作它 该项目构建时没有错误 但我看不到主窗口上显示的任何
  • QLineEdit:显示处理后的文本,而不是输入的文本,但保留它(自定义回显模式)

    我想要一个QLineEdit不显示输入的文本 而是显示经过处理的版本 同时保留原始文本并在通过请求时返回它text 就像密码回显模式一样 但我不希望每个字符都被屏蔽 我想虚拟化空间 例如什么时候some text with spaces i
  • 如何将图标放置到 QLineEdit 上?

    stackoverflow com 网站的右上角有一个带有放大镜头的搜索字段和一个灰色的 搜索 关键字 我想知道是否有可能实现相同的外观QLineEdit 如果是这样那怎么办 QLineEdit lineEdit new QLineEdit
  • QT 中只获取文件而不获取目录?

    当我这样做时 QDir myDir home some location QStringList filesList myDir entryList 它返回该位置内的文件和目录 但我只想要文件 并且这些文件可以具有任意扩展名 有任何想法吗
  • QTableView 中的虚拟列?

    我开始学习 Qt4 模型 视图编程 我有初学者问题 我有一个简单的应用程序 其中显示 sqlite 表QTableView class Model QtSql QSqlTableModel def init self parent None
  • 从 QML 实例化 C++ 对象会产生巨大的内存使用开销

    实例化一个QObjectC 堆中的派生类为每个对象提供了大约 160 个字节 通过注册相同的对象qmlRegisterType 用于从 QML 创建并通过以下方式动态创建对象createObject 每个对象给我 2000 多个字节 这是完
  • 如何在 Qt-Embedded 中(正确)输出多语言文本?

    我的目标系统是 linux 3 3 7 Qt Embedded 开源版 4 8 Droid 字体 取自 fonts droid 20111207 git 1 all deb Debian 软件包并复制到 usr lib fonts目录 主要
  • 使用 cmake 将两种解决方案合二为一

    我有两个单独的 Visual Studio 2013 解决方案 我想将它们迁移到一个解决方案中 因为第一个解决方案 使用 Qt 充当第二个解决方案的 GUI 最后 我希望有一个结构如下的单一解决方案 Solution All Build P
  • 如何创建QWidget的屏幕截图?

    我在 Qt Creator 中做作业 在其中绘制 QWidget 并且需要保存此 QWdiget 的某些部分 我试图解决这个问题 QPixmap pixmap pixmap copy rectangle rectangle is part
  • 向 Qt 样式表添加特异性时丢失样式

    这是我的代码 const QString STYLE SHEET background color rgba x x x y border 1px solid gray border radius 0px border top 1px so
  • 如何在 Qt 中以编程方式制作一条水平线

    我想弄清楚如何在 Qt 中制作一条水平线 这很容易在设计器中创建 但我想以编程方式创建一个 我已经做了一些谷歌搜索并查看了 ui 文件中的 xml 但无法弄清楚任何内容 ui 文件中的 xml 如下所示
  • 如何获取 QTableView 的标题列表?

    我有一个QTableView我的对话框中的对象 我需要访问该表的水平标题并将它们放入QStringList object 尽管进行了大量搜索 但我在 Qt 文档中找不到如何获取此标头列表 编辑 我发现的最接近的地方是this https w
  • 退出 Qt 程序的正确方法?

    我应该如何退出 Qt 程序 例如在加载数据文件时 发现文件损坏 并且用户需要退出该应用程序或重新启动数据文件 我是不是该 call exit EXIT FAILURE call QApplication quit call QCoreApp
  • 使用 QtWebEngine 将 C++ 对象暴露给 Qt 中的 Javascript

    使用 QtWebkit 可以通过以下方式将 C 对象公开给 JavascriptQWebFrame addToJavaScriptWindowObject如中所述https stackoverflow com a 20685002 5959
  • Qt - 设置不可编辑的QComboBox的显示文本

    我想将 QComboBox 的文本设置为某些自定义文本 不在 QComboBox 的列表中 而不将此文本添加为 QComboBox 的项目 此行为可以在可编辑的 QComboBox 上实现QComboBox setEditText cons
  • 如何检测QTableView中的双击

    我正在使用 PyQt 创建 GUI 应用程序 在继承自 QTableView 的视图中 需要检测用户双击行时选择的行 该表可以排序 但不能编辑 我该怎么做 注意 尝试了 doubleClicked int 信号 它是由鼠标按钮发出的 而不是

随机推荐

  • To create POPUP menu

    To create popupmenu Create new menu as follows Select popup opion Click on define transfer Assign any menu component pag
  • 飞猪单品详情采集

    api detail f ret SUCCESS 调用成功 v 1 0 data sold data sold 月销 5647 笔 soldCount 5647 tag sold pageContainer children detailC
  • python(chapter02)

    字符串 字符串 pystr python iscool is cool print pystr 0 使用切片法来进行字符串的切割 索引是2 到 5 的字符串 print pystr 2 5 索引是0到2的 print iscool 2 索引
  • ChatGLM-6B的安装和使用最全面细节讲解

    ChatGLM 6B是一个基于General Language Model GLM 架构的开源对话语言模型 支持中英双语 该模型使用了和ChatGPT类似的技术进行优化 经过1T标识符的中英双语训练 同时辅以监督微调 反馈自助和人类反馈强化
  • 【Solidity】Storage和memory关键字的区别和用法

    在 Solidity 中 有两个地方可以存储变量 storage以及memory Storage 变量是指永久存储在区块链中的变量 Memory 变量则是临时的 当外部函数对某合约调用完成时 内存型变量即被移除 状态变量 在函数之外声明的变
  • Work Tips

    目录 IAR环境下 使用Live Watch实时监控变量值 IAR替换mcu库 Linux中删除swp文件 使用J Link通过SWD接口直接下载 hex文件和 bin文件到MCU 下载J Flash软件 linux设置时间命令 Jlink
  • chatgpt综述和报告

    ChatGPT究竟强在哪 复旦大学邱锡鹏教授 大型语言模型的能力分析与应用 哔哩哔哩 bilibili2022年底 美国OpenA1公司发布了ChatGPT 一个可以与人类对话交互的千亿规模参数的大型语言模型 它可以根据用户输入的指令完成各
  • Cocos Creator 华容道

    环境 cocos creator 2 0 10 Mac环境 TypeScript 文末附源码链接 本文提供了游戏玩法的逻辑 支持关卡配置 可以自由配置关卡 先看一下效果 首先 我们看一下我们要处理的问题 1 区域划分 2 角色摆放 即 关卡
  • openWRT添加模块(四)

    http blog chinaunix net uid 10429687 id 3374873 html OpenWrt是一个比较完善的嵌入式Linux开发平台 在无线路由器应用上已有100多个软件包 人们可以在其基础上增加软件包 以扩大其
  • PID怎么应用到实际控制系统

    早就想写篇PID应用的文章 可是一直以来受限于自己的知识水平和能力 未能如愿 整个暑假在做一个激光电源的控制程序 核心思想又是PID控制 看来在整个控制领域 PID 的市场可是无处不在啊 关于PID的理论分析这里不在赘述 可以在一般的资料上
  • 判断这个数能被4整除,但是不能被100整除

    需求 用户输入一个 判断这个数能被4整除 但是不能被100整除 分析 1 用户输入 2 控制台 是否能被4整除并且100整除 let num prompt 请输入一个数 num num 0 防止用户输入空字符若是空字符就为0 let re
  • kdj超卖_kdj超卖是什么意思?kdj超买超卖区别是什么

    kdj超卖是什么意思 kdj超买超卖区别是什么 对于大多数股民来说 指标应用是股市投资必不可少的操作系统 指标的主要作用就是用来作参考 辅助自己进行股票投资 今天 在这里我们所要谈论的是kdj指标 kdj超卖是什么意思 如何判断kdj超买超
  • angular4学习指南,环境搭建,基础概念解析(一)

    一 Angular是什么 Angular是由google开发维护的一个开发跨平台应用的框架 同时适应PC端和移动端 两个大版本 1 5 和4 0 4 0完全重写 1 5之前的叫angularJS 4 0叫angular 二 Angular开
  • Netty02-入门

    二 Netty 入门 1 概述 1 1 Netty 是什么 Netty is an asynchronous event driven network application framework for rapid development
  • dlna 斐讯r1怎么用_斐讯R1智能(蓝牙)音箱固件升级教程

    斐讯R1智能 蓝牙 音箱固件升级教程 2019 07 05 17 46 00 55点赞 459收藏 112评论 儿子现在突然爱上听歌写作业 难得是听歌品味居然跟我8分像 书桌空间有限 看来一圈蓝牙音箱 发现斐讯遗产R1 哈曼认证单元 但据说
  • Python 频繁请求问题: [Errno 104] Connection reset by peer

    记遇到的一个问题 Errno 104 Connection reset by peer 今天工作上有个需求 数据库有个表有将近3万条url记录 每条记录都是一个图片 我需要请求他们拿到每个图片存到本地 一开始我是这么写的 伪代码 impor
  • Java学习笔记16——抽象类

    抽象类 抽象类 什么是抽象类 抽象的关键字 抽象类的特点 抽象类的成员特点 抽象类 什么是抽象类 在Java中 一个没有方法体的方法 应该被定义为抽象方法 而类中如果有抽象方法 该类被定义为抽象类 抽象的关键字 abstract 抽象类的特
  • Spring 的基本用法之另外一种装配方式

    一 目的 了解 Spring 环境配置 掌握定义应用程序类 掌握编辑配置文件创建 bean 实例实现依赖注入 掌握编辑测试类创建 IoC 容器 通过容器获取 bean 实例 二 内容 创建一个Spring项目 完成主题为 订单信息通知 项目
  • 一些比较不错的资源网站

    阮一峰日志地址 Github上值得推荐的开源电子书
  • QT 5.15 源码windows下 msvc编译

    目录 1 下载 Qt 源代码 2 安装依赖项 3 配置命令行环境变量 4 构建 5 使用 1 下载 Qt 源代码 Index of archive qt 5 15 5 15 8 singlehttps download qt io arch