【嵌入式——QT】QT静态编译

【嵌入式——QT】QT静态编译

  • QT下载
  • 查看文档
  • 下载Visual Studio
  • 打开命令行模式
  • 编译
  • 添加QT到Qt Creator
  • 编译示例

QT下载

下载地址
在这里插入图片描述
进入目录,我这里选择的qt-everywhere-src-5.14.1.zip。
在这里插入图片描述

查看文档

解压压缩包打开源码,查看README文件,里面有windows的要求。
在这里插入图片描述
我们要选择一个编译环境 MinGW 和 MSVC,这两个环境是不兼容的,要看一下你当前支持的编译器是什么。

下载Visual Studio

我们下载自己所需要的Visual Studio来作为编译器,我这里选择的版本是2019版本,同时也是QT所支持的版本。
Visual Studio下载地址
按照步骤安装即可,选择社区版。

打开命令行模式

打开安装Visual Studio自带的 x86 Native Tools Command Prompt for VS 2019 或者 x64 Native Tools Command Prompt for VS 2019 看个人需求。我这里选择的是x86的。如果不知道怎么查找的话,可以直接按win按键,搜索native就会给你提示出来两个版本的工具。
在这里插入图片描述

编译

进入刚刚解压好的QT源码目录,D:\Qt\qt-everywhere-src-5.14.1\qtbase\mkspecs\common
打开msvc-desktop.conf文件,修改==-MD-MT==。
修改前

QMAKE_CFLAGS_RELEASE    = $$QMAKE_CFLAGS_OPTIMIZE -MD
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -Zi -MD
QMAKE_CFLAGS_DEBUG      = -Zi -MDd

修改后

QMAKE_CFLAGS_RELEASE    = $$QMAKE_CFLAGS_OPTIMIZE -MT
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -Zi -MT
QMAKE_CFLAGS_DEBUG      = -Zi -MTd

提示:D的意思是动态编译(dynamic link),T的意思是静态编译(static link);

配置configure命令

configure.bat -static -prefix "D:\Qt\test" -confirm-license -opensource  -debug-and-release -platform win32-msvc  -nomake examples -nomake tests  -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -mp

具体参数含义:

  1. -prefix “D:\Qt\test” #指明安装的目录
  2. -confirm-license -opensource #指明是开源版本的qt
  3. -debug-and-release #指明需要debug版和release版,可以单独选择release版
  4. -platform win32-msvc #指明使用msvc编译,这里的win32并不指32位
  5. -nomake examples -nomake tests #不编译样例
  6. -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg #可选插件
  7. -opengl desktop #用系统自带的opengl
  8. -mp #多核编译

在我们上面打开的x86 Native Tools Command Prompt for VS 2019窗口中进入到QT解压后所在的目录,执行configure命令。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
我们这里使用的环境是MSVC,所以使用nmake命令进行编译即可,上图中也提示你了,Just run nmake。

在这里插入图片描述
我的电脑配置一般,执行了大概4个小时。特别占用CPU,建议在电脑闲时来操作。
执行完之后,我们再来执行最后一条命令 nmake install。

在这里插入图片描述
这个QT文件夹大概3.4G。

打开安装完成的qt目录,进入bin修改qt.conf文件
D:\Qt\Qt5.14.1\msvc2019_32\bin
在这里插入图片描述

QMAKE_MSC_VER = 1900
[Paths]
Prefix=D:/Qt/Qt5.14.1/msvc2019_32 

添加QT到Qt Creator

QT Creator下载地址
打开Qt Creator -》项目-》管理构建套件-》Qt版本 ,如果 Visual Studio安装正确,Qt Creator安装的时候需要选择支持MSVC2019,这个QT版本里会自动检测到MSVC2019版本的。
在这里插入图片描述
然后我们选择构建套件页签,添加一个构建套件
在这里插入图片描述
Qt版本选择上面你的qt版本。这个qt版本是你 Creator需要支持的才可以。
在这里插入图片描述
综上所述就可以开始写qt程序的,然后使用这个编译器来进行静态的编译吧。

编译示例

QT Creator编辑栏中的左下角可以看到以下按钮,选择你想要编译的模式,Debug、Profile、Release。第一个绿色按钮是直接运行,第二个绿色的按钮是debug模式运行。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/618153.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

双交叉限幅控制总结

空燃比小于等于1使用下图:空燃比大于1,MAX变MIN,MIN变MAX,高低选互换即可。加负荷,先加空气,后加煤气,降负荷,先降煤气,后降空气。 交叉限幅和双交叉限幅的区别 交叉限幅…

C#,质数(Prime Number)的四种算法源代码和性能比较

一、概念 质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数(规定1既不是质数也不是合数)。 本文介绍了四种求解质数的算法。 (1)质数筛&am…

【C++】- 类和对象

类和对象③ 介绍运算符重载赋值运算符重载运算符重载 在学习C语言时,我们首先接触的就是变量,再深入学习,我们可以利用运算符对变量进行操作,当我们使用C编写程序时,经常会遇到一些需要对特殊的例如自定义数据类型进行…

BikeDNA(四)初始化参考数据

BikeDNA(四)初始化参考数据 这本笔记本: 加载定义研究区域的多边形,然后为研究区域创建网格叠加。加载参考数据。处理参考数据以创建分析所需的网络结构和属性。 先决条件和条件 输入/输出 config.yml 必须提前设置。 此笔记本…

解决文字识别中误识别问题的秘籍

随着人工智能技术的不断发展,文字识别技术已经广泛应用于各个领域,如智能客服、智能家居、自动驾驶等。然而,在实际应用中,文字识别技术也面临着误识别的问题。误识别不仅会影响用户体验,还可能导致严重的后果。因此&a…

怎么把PDF转成图片格式?分享一个PDF转图片的方法

在数字时代,PDF文件已经成为我们日常工作中不可或缺的一部分。然而,有时候我们需要将PDF文件中的内容转换为图片格式,这涉及到将PDF转图片的需求。PDF转图片的需求来源于不同的应用场景。在某些情况下,我们需要将PDF文件中的内容以…

【MATLAB】 多元变分模态分解MVMD信号分解算法

有意向获取代码,请转文末观看代码获取方式~ 1 基本定义 多元变分模态分解(MVMD)是一种信号分解方法,可以自适应地实现信号的频域剖分及各分量的有效分离。 MVMD算法的具体步骤如下: 假设原始信号S被分解为K个分量μ…

代码随想录 Leetcode160. 相交链表

题目: 代码(首刷看解析 2024年1月13日): class Solution { public:ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {ListNode *A headA, *B headB;while (A ! B) {A A ! nullptr ? A->next : headB;B B ! nullpt…

【力扣·每日一题】2182.构造限制重复的字符串(模拟 贪心 优先队列 C++ Go)

题目链接 题意 给你一个字符串 s 和一个整数 repeatLimit ,用 s 中的字符构造一个新字符串 repeatLimitedString ,使任何字母 连续 出现的次数都不超过 repeatLimit 次。你不必使用 s 中的全部字符。 返回 字典序最大的 repeatLimitedString 。 如果…

[易语言]易语言部署yolox的onnx模型

【官方框架地址】 https://github.com/Megvii-BaseDetection/YOLOX 【算法介绍】 YOLOX是YOLO系列目标检测算法的进一步演变和优化。它由Megvii Technology的研究团队开发,是一个高性能、可扩展的对象检测器。YOLOX在保留快速处理速度的同时,通过引入一…

NetApp E系列(E-Series)OEM产品介绍以及如何收集日志和保存配置信息

NetApp E系列是NetApp收购LSI存储后建立的一条新的产品线,由于LSI存储的历史悠久,所以这条产品线给NetApp带来了很多的OEM产品,可以说E系列是世界上OEM给最多公司的存储产品线也不为过,因为最早LSI的产品销售测率就是OEM&#xff…

JQuery过滤选择器-如何让某个元素换颜色(俩种方式)

目录 一、过滤选择器:eq二、过滤选择器 : lt 前言 : 在做项目时经常会遇到列表或者选择某个元素 一、过滤选择器:eq :eq (index)匹配一个给定索引值的元素 $("ul li:eq(0)").css("color","red");二、过滤选择器 : lt …

2024-01-11 部署Stable Diffusion遇挫记

点击 <C 语言编程核心突破> 快速C语言入门 部署Stable Diffusion遇挫记 前言一、一如既往的GitHub部署二、使用的感受总结 create by Stable Diffusion; prompt: fire water llama 前言 要解决问题: 由于近期的努力, 已经实现语音转文字模型, 通用chat迷你大模型的本地…

怎么把workspace的数据导入到simulink进行FFT分析?

怎么把数据导入到simulink在这篇博客已经阐述了&#xff0c;那么如何把数据导入到simulink还能进行FFT分析呢&#xff1f; 首先我们看simulink的FFT分析界面&#xff0c;&#xff08;前置步骤&#xff1a;导入powergui模块&#xff0c;双击powergui模块&#xff0c;Tool选项卡…

发动机装备3d虚拟在线云展馆360度展示每处细节

在当今数字化的时代&#xff0c;消费者对于线上购物的需求与期待日益增长。尤其在购车这一大宗消费行为上&#xff0c;消费者不再满足于传统的图片与文字介绍。为了满足这一市场需求&#xff0c;我们引入了3D线上展示技术。 3D汽车模型实景互动展示是一种通过先进的三维建模技术…

【密码学】python密码学库pycryptodome

记录了一本几乎是10年前的书&#xff08;python绝技–用python成为顶级黑客&#xff09;中过时的内容 p20 UNIX口令破解机 里面提到了python标准库中自带的crypt库&#xff0c;经验证Python 3.12.1中并没有这个自带的库&#xff0c;密码学相关的库目前&#xff08;2024.1.12&a…

一杯干红葡萄酒的酿造

一杯干红葡萄酒的酿造 一、什么是干红葡萄酒&#xff1f; 干红葡萄酒是指葡萄酒在酿造后&#xff0c;酿酒原料(葡萄汁)中的糖分完全转化成酒精&#xff0c;残糖量小于或等于4.00/L的红葡萄酒。 干红葡萄酒按颜色分可以分为 1&#xff0c;白葡萄酒:选择用白葡萄或浅色果皮的酿…

自定义数据实现SA3D

SA3D&#xff1a;Segment Anything in 3D with NeRFs 实现了3D目标分割 原理是利用SAM(segment anything) 模型和Nerf分割渲染3D目标&#xff0c; SAM只能分块&#xff0c;是没有语义标签的&#xff0c;如何做到语义连续&#xff1f; SA3D中用了self-prompt, 根据前一帧的mask…

打通商城与ERP系统,实现物料自动同步

【客户介绍】 某文化传播有限公司是一家专注于为企业提供品牌营销、公关传播、活动策划、数字营销等服务的综合性文化传播公司。该公司拥有一支经验丰富的专业团队&#xff0c;具有丰富的品牌营销、公关传播、活动策划、数字营销经验。该公司自成立以来&#xff0c;已经为数百…

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK实现相机的高速图像保存(C#)

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK实现相机的高速图像保存&#xff08;C#&#xff09;&#xff09; Baumer工业相机Baumer工业相机的图像高速保存的技术背景Baumer工业相机通过NEOAPI SDK函数图像高速保存在NEOAPI SDK里实现线程高速图像保存&#xff1a;工业相机高…