【嵌入式——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,高低选互换即可。加负荷,先加空气,后加煤气,降负荷,先降煤气,后降空气。 交叉限幅和双交叉限幅的区别 交叉限幅…

15. C++ memcpy和memmove

1. memcpy和memmove 函数原型: void *memcpy(void *dest, const void* src, size_t count ); void *memmove(void *dest, const void* src, size_t count );1.1 memcpy和memmove相同点 都是用于从src拷贝count个字节到dest。 1.2 memcpy和memmove区别 如果目标…

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

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

234.【2023年华为OD机试真题(C卷)】数组去重和排序(JavaPythonC++JS实现)

🚀点击这里可直接跳转到本专栏,可查阅顶置最新的华为OD机试宝典~ 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目二.解题思路三.题解代码Python题解代码JAVA题解…

【C++】- 类和对象

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

BikeDNA(四)初始化参考数据

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

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

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

CSAPP - 反汇编 strings_not_equal

CSAPP - 反汇编 strings_not_equal CSAPP bomlab1 中涉及到的 strings_not_equal 函数, 虽然可以从函数名字猜出函数含义,但我想根据汇编代码反推出对应的C代码,而不是根据函数名字猜测。 相比于专门学习 CTF 的选手, 本篇的废话很多&#…

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

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

openssl3.2 - 官方demo学习 - cipher - aesccm.c

文章目录 openssl3.2 - 官方demo学习 - cipher - aesccm.c概述笔记END openssl3.2 - 官方demo学习 - cipher - aesccm.c 概述 aesccm.c 是 AES-192-CCM 的加解密应用例子, 用的EVP接口. 看到不仅仅要用到key, iv, data, 在此之前还要设置 nonce, tag, 认证数据. 为啥需要设置…

TensorRT量化

系列文章目录 第一章 YOLOv5模型训练集标注、训练流程 第二章 YOLOv5模型转ONNX,ONNX转TensorRT Engine 第三章 TensorRT量化 文章目录 系列文章目录前言一、量化二、量化在TensorRT中的实现三、预处理(Preprocess)和后处理(Postprocess)总结 前言 学习笔记–恩培…

linuxshell日常脚本命令(1)

Linux 清理make、configure生成的文件(灵感来自于quilt安装) make clean #make clean 可以清除make失败的内容Linux 清理make、configure生成的文件 make clean #清除上一次make命令生成的文件 make distclean #清除上一次make以及configure命令生成的…

【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在保留快速处理速度的同时,通过引入一…

textarea文本框根据输入内容自动适应高度

第一种&#xff1a; <el-input auto-completeoff typetextarea :autosize"{minRows:3,maxRows:10}" class"no-scroll"> </el-input> /* 页面的样式表 */ .no-scroll textarea {overflow: hidden; /* 禁用滚动条 */resize: none; /* 禁止用户…

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

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

2024.1.9 Spark SQL day06 homework,数据清洗

目录 一. Spark SQL中数据清洗的API有哪些&#xff0c;各自作用是什么&#xff1f; 二. 设置Spark SQL的shuffle分区数的方式有哪几种 三. 数据写出到数据库需要注意什么? 四. Spark程序运行集群分类 一. Spark SQL中数据清洗的API有哪些&#xff0c;各自作用是什么&#x…