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

news2024/9/28 7:24:50

【嵌入式——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.coloradmin.cn/o/1379561.html

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

相关文章

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

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

UE5 实现RPG游戏操作控制

在UE5以后,epic抛弃了之前的那一套操作输入系统,使用了一套新的增强输入作为替代,目的主要是解决经常切换操作时的问题(操作人物上车以后,可以直接切换成操作汽车的一套输入)接下来,将实现如何使…

双目测距工程Stereo-Vision-master学习笔记

硬件: 首先要要把两个摄像头固定到支架上,并且两个摄像头的间距应该在110mm,两个摄像头没有落差 相机的内参数包括焦距、主点坐标、像素尺寸等,这些参数决定了相机成像的几何变换关系。内参数是相机固有的属性,不会随…

RK3568驱动指南|第十二篇 GPIO子系统-第128章 GPIO入门实验

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工…

【期末考试】网络综合复习宝典

相关链接 网络复习思维导图(HCIP)https://www.edrawsoft.cn/viewer/public/s/038e2370897928 详述循环冗余校验CRC码https://blog.csdn.net/liht_1634/article/details/124328005?app_version6.2.6&codeapp_1562916241&csdn_share_tail%7B%22…

用通俗易懂的方式讲解:十分钟读懂 Stable Diffusion 运行原理

AIGC 热潮正猛烈地席卷开来,可以说 Stable Diffusion 开源发布把 AI 图像生成提高了全新高度,特别是 ControlNet 和 T2I-Adapter 控制模块的提出进一步提高生成可控性,也在逐渐改变一部分行业的生产模式。惊艳其出色表现,也不禁好…

windows server 2012、2019服务器定时重启

手动设置定时任务 1.开始菜单,找到“计划任务程序”; 如果无法创建基本任务的话,可能是系统中的“Task Scheduler”服务没有启动,你可在运行中键入“ services.msc”,查看“Task Scheduler”服务是否被设置成了“已禁用”&#x…

2024 年 8 款最好的PDF阅读和编辑软件

写出好的内容本身就是一门艺术。写作中的错误会让你看起来粗心大意或无能为力——这两种情况都不利于你的职业形象。没有任何软件能够取代现实生活中可以指出您写作错误的编辑器。幸运的是,有些软件已经接近并仍在改进它们的服务以帮助您清理工作。 编辑PDF很昂贵&…

k8s集群配置NodeLocal DNSCache

一、简介 当集群规模较大时,运行的服务非常多,服务之间的频繁进行大量域名解析,CoreDNS将会承受更大的压力,可能会导致如下影响: 延迟增加:有限的coredns服务在解析大量的域名时,会导致解析结果…

【Maven】002-Maven 安装和配置

【Maven】002-Maven 安装和配置 文章目录 【Maven】002-Maven 安装和配置一、官网1、官网2、历史版本列表 二、下载 Maven 3.8.8 版本1、进入 Maven 3.8.8 版本发行说明页2、进入下载页3、下载4、下载得到 apache-maven-3.8.8-bin.zip 三、Maven 安装1、将安装包解压到想放置的…

牛客周赛 Round 1 解题报告 | 珂学家 | 分类计数 + 同余DP

前言 生于生时,亡于亡刻。遵从自心,尽人之事。 整体评价 终于等来了侧重面试的比赛,而且题量刚刚好,不超纲,不涉及算法竞赛。 第一场的比赛,感觉题目出的比较典,A是简单模拟,B则是…

NX二次开发PK获取对象类型

PK_ENTITY_ask_class(),获取对象类型建议用这个函数,比较通用,包含所有对象类型,可以替代UF_MODL_ask_edge_type(),UF_MODL_ask_body_type(),UF_MODL_ask_face_type()等函数 PK_ENTITY_t entity; PK_CLASS_t PK_TYPE; PK_ENTITY_ask_class(e…

玩转Mysql 六(MySQL数据存储结构)

一路走来,所有遇到的人,帮助过我的、伤害过我的都是朋友,没有一个是敌人。如有侵权,请留言,我及时删除! 一、MySQL数据存储结构解析 1、mysql数据存储结构的组成 ​ 从 InnoDB 逻辑存储结构来看&a…

HandlerInterceptor拦截器 postHandle执行addHeader无效,postHandle执行setStatus无效的解决方案

问题描述 想在postHandle方法里执行addHeader方法来补充一些Header信息(如分页信息),但是最后执行却未如期显示 拦截器源码 import com.zhangziwa.practisesvr.utils.response.ResponseContext; import jakarta.servlet.http.HttpServletR…

【降龙算法】基于QT插件机制实现一个机器视觉算法小框架

机器视觉行业有各种各样的拖拉拽框架,也叫做低代码平台,例如国内海康的VisionMaster: 一个机器视觉框架需要包含各种算法模块,日志窗口,图像显示窗口等等,【降龙算法】就是做了一个入门级的机器视觉算法框…

What does `HandlerInterceptor` do?

HandlerInterceptor 是 SpringMVC 中的一个接口&#xff0c;在SpringMVC应用中它提供了一种实现应用级拦截器的机制。 第1步&#xff1a;引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web<…

自动化测试框架pytest系列之8个常用的装饰器函数

自动化测试框架pytest系列之基础概念介绍(一)-CSDN博客 自动化测试框架pytest系列之21个命令行参数介绍(二)-CSDN博客 自动化测试框架pytest系列之强大的fixture功能&#xff0c;为什么fixture强大&#xff1f;一文拆解它的功能参数。(三)-CSDN博客 接上文 3.5 pytest的8…

当一堆数据差异过大如何选?

我们通过采样获得一对数组&#xff0c;但是他们差异过大&#xff0c;所以我们选择进行一次滤除。 先看基本概念&#xff1a; 移动平均&#xff08;Moving Average&#xff09;&#xff1a; 计算每个数据点及其相邻数据点的平均值&#xff0c;可以使用不同的窗口大小。这有助于…

获取 Dll 模块的加载字符串资源

概要 获取 Dll 模块中加载的字符串资源&#xff0c;可以通过 LoadString 实现。这个函数可以用于在不同版本索引系统字符串&#xff0c;对于一些根据名称操作系统菜单的功能&#xff0c;可以使用这种方法动态获取系统模块当前的加载字符串。 LoadStringW 从与指定模块关联的可…

Linux中断 -- 中断应答、嵌套、

接上文&#xff0c;本文继续介绍Linux软件部分逻辑。 参考内核版本&#xff1a;kernel-4.19 目录 1.中断信号在各级中断控制器中的应答 2.supports_deactivate_key意义 3.中断嵌套 1.中断信号在各级中断控制器中的应答 本章主要从内核软件层面来看各中断控制器对中断信号处…