【QT】pro文件里添加又删除LIBS不影响运行的原因

我发现个问题啊,如果运行项目,发现报错,缺少某dll,接着你在pro文件里加上win32:LIBS += -lOpengl32(举个例子),接着可以运行了,接着把这行删掉,再运行,仍然可以,后续是不影响的。

但是当你把build文件夹删掉的时候,再次运行,就会出现同样的错误,gpt说是因为makefile已经存在了,已经找到了位置,后续并没有重新生成,经过我测试,发现还真是这样的。

  • 除非你删掉build文件夹再运行,否则就发现没变动

当你在Qt项目的.pro文件中添加win32:LIBS += -lOpengl32,然后成功构建项目后,这行配置指示链接器在Windows平台上链接到OpenGL库Opengl32.lib。这个库提供了OpenGL的标准函数实现,对于使用OpenGL功能的应用程序是必需的。当你首次添加这行配置并构建项目时,qmake会生成相应的Makefile,其中包含了链接到Opengl32.lib的指令。这使得项目能够找到OpenGL的实现,因此可以成功运行。

如果你在之后把这行配置删除,但没有删除构建目录(即build文件夹),然后重新构建项目,实际上并不会重新生成Makefile(因为qmake认为没有必要),或者生成的Makefile仍然包含之前的配置缓存,因此链接到Opengl32.lib的指令依然生效。这就是为什么删除那行配置后项目仍然能够运行的原因。

当你完全删除构建目录后再次构建项目,qmake会根据当前的.pro文件内容从头开始生成新的Makefile。由于此时.pro文件中已经不包含win32:LIBS += -lOpengl32这行配置,新生成的Makefile中不会包含链接到Opengl32.lib的指令,导致链接器无法找到OpenGL的实现,因此项目无法运行。

解决方案

为了确保项目能够稳定运行,如果你的项目确实依赖于OpenGL库,建议在.pro文件中保留win32:LIBS += -lOpengl32这行配置。这样,无论何时重新构建项目,无论是否删除了构建目录,项目都能够找到并链接到必需的OpenGL库。

此外,理解Qt构建过程和构建系统如何处理项目文件中的配置对于解决此类问题很有帮助。记住,每次更改.pro文件后,最好是清理(Clean)然后重新构建(Rebuild)项目,确保所有的配置更改都能正确反映到Makefile和最终的构建产物中。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

中介者模式【行为模式C++】

1.简介 中介者模式是一种行为设计模式, 能让你减少对象之间混乱无序的依赖关系。 该模式会限制对象之间的直接交互, 迫使它们通过一个中介者对象进行合作。 亦称: 调解人、控制器、Intermediary、Controller、Mediator 2.示例 中介者模式在…

计算机组成原理(IO,输入输出)

1、“821.2016T1(1)”,表示821真题,2016年的题,T1是 选择题/填空题/大题 的第一题,其他类似标记也是相通 2、个人小白总结自用,不一定适用于其他人,请自行甄别 3、有任何疑问,欢迎私信探讨&…

uniapp开发h5端使用video播放mp4格式视频黑屏,但有音频播放解决方案

mp4格式视频有一些谷歌播放视频黑屏,搜狗浏览器可以正常播放 可能和视频的编码格式有关,谷歌只支持h.264编码格式的视频播放 将mp4编码格式修改为h.264即可 转换方法: 如果是自己手动上传文件可以手动转换 如果是后端接口调取的地址就需…

【leetcode面试经典150题】36. 旋转图像(C++)

【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主,题解使用C语言。(若有使用其他语言的同学也可了解题解思路,本质上语法内容一致&…

【Ansible自动化运维】Ansible入门基础信息【安装配置、常用命令与模块】

介绍安装配置注意事项yum安装验证安装配置host配置主机清单配置主控端被控端 常用模块命令组成command模块shell模块copy模块script模块 日志信息最后 介绍 Ansible 是一个开源 IT 自动化引擎,可自动执行供应、配置管理、应用程序部署、编排和许多其他 IT 流程。它可…

MySQL分库分表的方式有哪些

目录 一、为什么要分库分表 二、什么是分库分表 三、分库分表的几种方式 1.垂直拆分 2. 水平拆分 四、分库分表带来的问题 五、分库分表技术如何选型 一、为什么要分库分表 如果一个网站业务快速发展,那这个网站流量也会增加,数据的压力也会随之而…

护眼台灯哪个牌子好?护眼台灯十大排名,看看业内人怎么选!

眼镜已成为许多人日常生活中不可或缺的一部分,但戴眼镜并不总是方便的。现在许多家长也越来越关注孩子的视力问题,有些学生的书桌上已经放置上了护眼台灯。这种台灯提供柔和的光线,有助于改善照明环境,保护眼睛健康。然而&#xf…

使用jQuery实现购物界面的动态效果

实现功能:(购物车以表格的格式展示) 1 全选框和复选框之间的联动关系: 点击全选,所有复选框checked状态为true 点击复选框,全选框状态实时更新 2 点击删除按钮,删除对应的行 3 点击删除所选…

VUE3的有关知识

学习vue3的原因 在vue2当中的组件的实例,都是data一块,computed一块,当我们去找某一变量相关的则十分麻烦,vue3是组合式API,vue2是选项式, vue3的优点: 1)组合式更易维护 2)更快的速度 3)更小的体积 4)更好的响应式proxy 使用vue3相关脚手架创建项目 步骤: 1)node -v node版…

【CVE-2010-2883】进行钓鱼攻击的研究

最近作业中研究APT攻击,了解到2011年前后披露的LURID-APT,其中敌手利用了各种版本的文件查看器的漏洞实现攻击。CVE-2010-2883就是其中被利用的一个adobe reader的漏洞。特此复现,更好的研究和防范APT攻击。 本文仅仅是对相关漏洞利用的学习…

PyCharm Pro 2024:卓越的Python编辑开发工具,适用于Mac与Windows平台

PyCharm Pro 2024是一款专为Python开发者设计的强大编辑开发工具,无论是Mac还是Windows用户,都能从中受益良多。该软件凭借其出色的性能、丰富的功能和卓越的用户体验,成为Python编程界的翘楚。 作为一款高效的Python编辑器,PyCh…

02-结构化程式与自定义函数

视频教程:b站视频【MATLAB教程_台大郭彦甫(14课)原视频补档】https://www.bilibili.com/video/BV1GJ41137UH/?share_sourcecopy_web&vd_sourc*ed6b9f96888e9c85118cb40c164875dfc 官网教程: MATLAB 快速入门 - MathWorks 中…

React 使用 three.js 加载 gltf 3D模型 | three.js 入门

系列文章 示例项目(gitcode):https://gitcode.com/qq_41456316/simple-react-three-demo 文章目录 系列文章前言一、three.js是什么?二、使用 React 和 three.js 加载 glTF 3D 模型的步骤步骤 1:创建 React 应用步骤 2:安装 thre…

使用QT 开发不规则窗体

使用QT 开发不规则窗体 不规则窗体贴图法的不规则窗体创建UI模板创建一个父类创建业务窗体main函数直接调用user_dialog创建QSS文件 完整的QT工程 不规则窗体 QT中开发不规则窗体有两种方法:(1)第一种方法,使用QWidget::setMask函…

川土微高性能模拟芯片系列产品介绍和应用

一、公司简介 上海川土微电子有限公司是一家成立于2016年的专注于高端模拟芯片研发设计与销售的高科技公司,产品涵盖隔离与接口、驱动与电源、高性能模拟三大产品线以及μMiC战略产品( micro-Module in Chip)。目前产品已广泛应用于工业控制…

怎么在SU草图大师里做地形模型?

​​​​​​  1.导入地形数据:首先,找到你想要模拟的地形数据。常见的文件格式是DEM(数字高程模型)文件,它包含地表高程数据。在SketchUp中,通过菜单栏选择“文件” -> “导入” -> “DEM”,然后选择你的DEM文…

基于springboot实现桂林旅游景点导游平台管理系统【项目源码+论文说明】

基于springboot实现桂林旅游景点导游平台管理系统演示 摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了桂林旅游景点导游平台的开发全过程。通过分析桂林旅游景点导游平台管理的不足,创建了一个计算…

【数据结构(四)】链表经典练习题

❣博主主页: 33的博客❣ ▶️文章专栏分类:数据结构◀️ 🚚我的代码仓库: 33的代码仓库🚚 🫵🫵🫵关注我带你学更多数据结构知识 目录 1.前言2.删除值为key的所有结点3.反转链表4.返回中间结点5.输出倒数第k个结点6.链表…

2024-04-10 Linux gzip 和 gunzip 命令,gzip 压缩的文件通常比原始文件小得多。

一、gzip 是 Linux 系统中用于压缩文件的命令,它通常用于将单个文件压缩成 .gz 格式的文件。gzip 压缩的文件通常比原始文件小得多,因此它在节省磁盘空间和减少文件传输时间方面非常有用。 gzip 命令的基本语法如下: gzip [选项] [文件]复制…

VMware vSphere Hypervisor,ESXi的介绍,下载与安装

1.介绍 看这篇文章就好了 Vmware ESXi 是免费吗?一文弄懂vSphere功能特性及ESXi与vSphere到底有什么区别和联系。 - 知乎 (zhihu.com) 2.下载 这里面有7.0各个版本的下载镜像文件和校验信息 VMware-Esxi7.0各个版本镜像文件iso下载链接_esxi7.0镜像-CSDN博客 3.…