.pro配置文件

发布时间:2026/8/8 15:54:46

.pro配置文件
(1) CONFIG用于定义项目的编译配置、特性和依赖通过/-来添加 / 移除配置项。# 基础用法常用组合 CONFIG c17 # 指定编译标准为C17可替换为c11/c14/c20 CONFIG release # 编译为发布版本优化、无调试信息 CONFIG debug # 编译为调试版本包含调试信息便于调试 CONFIG debug_and_release # 同时生成debug和release版本 CONFIG shared # 编译为动态库默认对应dll/so CONFIG static # 编译为静态库对应lib/a CONFIG qt core gui widgets # 指定依赖Qt的模块core/gui/widgets等 # 实用场景区分debug/release路径 CONFIG(debug, debug|release) { DESTDIR $$PWD/bin/debug # debug版本输出到bin/debug } else { DESTDIR $$PWD/bin/release # release版本输出到bin/release }核心作用控制编译模式、语言标准、库类型、Qt 模块依赖等核心编译行为。(2) TARGET 目标文件名称指定编译后生成的目标文件名称可执行程序 / 库的名字TARGET MyApp # Windows生成MyApp.exeLinux生成MyAppMac生成MyApp.app TARGET MyLib # 动态库Windows生成MyLib.dllLinux生成libMyLib.so注意TARGET 不要包含路径路径由 DESTDIR 控制。(3)DESTDIR输出路径专门用于指定编译后目标文件的输出路径。(4)DEFINES预定义变量用于指定需要传递给 C/C 预处理器的宏定义。这些宏会在编译阶段生效影响代码的条件编译逻辑例如#ifdef、#ifndef等判断。DEFINES HVSLAVE_LIBRARY //用于标记 “当前正在编译动态库本身”在 Windows 平台下实现了动态库中类的符号导出编译库时和外部程序的符号导入使用库时核心是HVSLAVE_EXPORT宏根据场景自动切换为 “导出” 或 “导入” 状态导出Q_DECL_EXPORT是在动态库项目自身中配置的通过类声明前加Q_DECL_EXPORT),作用是将库中的类 / 符号写入动态库的 “导出表”让外部程序能识别。导入Q_DECL_IMPORTLIBS配置是在使用动态库的程序中配置的Q_DECL_IMPORT告诉编译器 “这个类来自外部库”而LIBS告诉链接器 “去哪里找这个库并链接它”。//只要这个类要放进动态库并且想被其他程序调用就必须用 HVSLAVE_EXPORT 。 //它的作用就是让动态库里的类能被外部程序 “认出来” 并正常使用尤其在 Windows 上是 “刚需” //头文件开头添加 #ifdef HVSLAVE_LIBRARY //这个宏通常在库项目的编译配置中定义 #define HVSLAVE_EXPORT Q_DECL_EXPORT // 库内部编译时导出 #else #define HVSLAVE_EXPORT Q_DECL_IMPORT // 外部引用时导入 #endif //类前添加HVSLAVE_EXPORT class HVSLAVE_EXPORT MainHVSlave : public QWidget { Q_OBJECT } //在编译动态库时HVSLAVE_EXPORT 是 “导出” 标签相当于告诉动态库“这个类可以外借” //其他程序用时HVSLAVE_EXPORT 自动变成 “导入” 标签相当于告诉程序“这个类是从外面的动态库借来的直接用就行” 另外 其他程序想调用该类时 1.添加头文件 2.pro 文件LIBS -L/dll存放的文件夹路径 -l需要链接的动态库名称 该类的代码实际存在于一个动态库文件里比如 Windows 上的 .dll、Linux 上的 .so、Mac 上的 .dylib 其他程序必须知道这个动态库文件放在电脑的哪个文件夹里在.pro添加库链接告诉编译器去哪里找这个库问动态库符号表是什么你可以把动态库符号表理解为动态库.dll/.so/.dylib的 “功能目录 / 索引表”。动态库本质是一堆编译后的二进制代码机器指令人类无法直接识别符号表就是给这些二进制代码 “贴标签”记录了「函数 / 类 / 变量的名字」和「它在库中的内存地址」的对应关系当程序使用动态库时链接器 / 操作系统会通过这个 “目录” 找到需要的功能比如JsonCommGlobal::getInstance()并跳转到对应的二进制代码执行。(5)LIBS第三方链接告诉编译器 “要链接哪个库去哪里找库文件”unix|win32: LIBS -L$$PWD/DLL/ -lControlCAN 作用指定项目需要链接的外部库文件仅在 Unix/Linux 或 Windows 系统生效。 //拆解 unix|win32:条件判断只对 Unix/Linux如 Ubuntu或 Windows 系统生效。 LIBS 告诉编译器 “追加需要链接的库”。 -L$$PWD/DLL/-L 是 “指定库文件的搜索路径” $$PWD 是当前 .pro 文件所在目录 整体表示 “在当前目录的 DLL 文件夹里找库”。 -lControlCAN-l小写 L是 “指定要链接的库名” 表示要链接名为 ControlCAN 的库。 Windows 下实际找 ControlCAN.lib导入库或 ControlCAN.dll动态库 Linux 下找 libControlCAN.so动态库或 libControlCAN.a静态库。(6) TEMPLATE 类型标识TEMPLATE是 Qt qmake 工具的核心变量直接决定 qmake 生成的构建文件Makefile/VS 工程 / Xcode 工程类型也就是决定你的项目最终会被编译成什么类型的产物。取值中文释义核心作用典型输出产物app应用程序模板编译生成可执行程序桌面端 / 控制台程序Windows:.exe、Linux: 可执行文件、Mac:.applib库模板编译生成库文件静态库 / 动态库动态库:.dll/.so/.dylib静态库:.lib/.asubdirs子目录模板管理多子项目主项目不编译代码仅触发子项目的编译无直接产物仅协调子项目构建

相关新闻

eone011【1.8.0_371部署】

eone011【1.8.0_371部署】

2026/8/8 15:54:46

需要部署jdk的机器上都执行 上传jdk-8u371-linux-x64.tar.gz到/opt目录然后解压 cd /opt tar -xf jdk-8u371-linux-x64.tar.gz配置环境变量 cat >> /etc/profile<<EOF#JDK env export JAVA_HOME/opt/jdk1.8.0_371 export CLASSPATH.:$JAVA_HOME/lib/dt.jar:$JAVA_H…

终极星露谷物语农场规划器:打造完美农场的免费神器

终极星露谷物语农场规划器:打造完美农场的免费神器

2026/8/8 15:54:46

终极星露谷物语农场规划器&#xff1a;打造完美农场的免费神器 【免费下载链接】stardewplanner Stardew Valley farm planner 项目地址: https://gitcode.com/gh_mirrors/st/stardewplanner 还在为星露谷农场布局而烦恼吗&#xff1f;每次游戏开始时&#xff0c;面对那…

LogAnomaly:无监督日志异常检测原理与工程实践

LogAnomaly:无监督日志异常检测原理与工程实践

2026/8/8 15:44:45

1. 项目缘起&#xff1a;当海量日志遇上“沉默”的异常 在运维和开发领域&#xff0c;日志文件是我们诊断系统健康状况、追踪用户行为、定位故障根源的“黑匣子”。无论是服务器后台的 error.log &#xff0c;还是分布式系统中成百上千个微服务吐出的文本流&#xff0c;它们都…

RockyLinux 9.5 部署 Kubernetes 集群(Containerd)

RockyLinux 9.5 部署 Kubernetes 集群(Containerd)

2026/8/8 16:55:03

一、资源下载 1、阿里云官方镜像站 Rocky Linux 9.5 镜像地址&#xff1a;https://mirrors.aliyun.com/rockylinux/9.5/isos/x86_64/Rocky-9.5-x86_64-minimal.iso 2、Calico 3.28.4 &#xff08;1&#xff09;百度网盘下载链接: Calico images: 链接: https://pan.baidu.c…

分库分表实战:如何让数据库“分身有术“?

分库分表实战:如何让数据库“分身有术“?

2026/8/8 16:55:03

【785】分库分表实战:如何让数据库"分身有术"? 想象一下: 你是一家超市的仓库管理员,仓库里堆了1000万件商品。 有一天老板说:“仓库太小了,要扩容!” 你看了看,发现问题不是仓库太小,而是所有商品都堆在一个货架上,找东西要翻遍整个仓库。 分库分表就…

Spring @Transactional 事务的7大传播特性

Spring @Transactional 事务的7大传播特性

2026/8/8 16:55:03

Spring的7大传播特性, 并且我画了图,便于李姐, 自我感觉还不错, 底部还有对领导的吐槽, 下次面试问我对加班的看法, 可以回复 mandatory, NEVER required 默认的 使用当前的事务, 如果当前没有事务,则自己新建一个事务,子方法是必须运行在一个事务中的, 如果当前存在事务,则…

数据库读写分离:如何让“读“和“写“分工合作?

数据库读写分离:如何让“读“和“写“分工合作?

2026/8/8 16:55:03

【784】数据库读写分离:如何让"读"和"写"分工合作? 你有没有这种感觉: 餐厅中午高峰期,点菜的服务员和结账的收银都挤在一个窗口,排队排到崩溃。 后来老板把两个岗位分开——前厅专门点菜,后台专门结账,效率立刻翻倍。 数据库读写分离,就是这个…

消息队列实战:Kafka如何成为系统间的“顺丰快递“?

消息队列实战:Kafka如何成为系统间的“顺丰快递“?

2026/8/8 16:55:03

【783】消息队列实战:Kafka如何成为系统间的"顺丰快递"? 你有没有想过这个问题: 你网购下单后,支付成功的通知是怎么瞬间发到商家、仓库、物流好几个系统的? 总不能支付系统挨个打电话通知吧? 这时候就需要一个"快递中转站"——消息队列。 什么…

Godot4 Tween并行模式避坑指南:从原理到实战的动画时序编排

Godot4 Tween并行模式避坑指南:从原理到实战的动画时序编排

2026/8/8 16:45:03

1. 项目概述&#xff1a;为什么Tween并行模式是Godot动画的“双刃剑”&#xff1f; 如果你正在用Godot4做游戏&#xff0c;尤其是涉及到UI动效、角色动作衔接或者场景过渡&#xff0c;那你肯定绕不开Tween这个强大的补间动画系统。它比直接操作 _process 里的delta值要优雅得…

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案

2026/8/6 19:19:00

ncmdumpGUI&#xff1a;一键解锁网易云音乐ncm文件的终极解决方案 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换&#xff0c;Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾经从网易云音乐下载了心爱的歌曲&am…

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比

2026/8/8 5:17:40

分布式配置中心选型实战&#xff1a;Nacos与Consul在创业场景下的对比工程导读&#xff1a;本文深入讨论 分布式配置中心选型实战&#xff1a;Nacos与Consul在创业场景下的对比 在生产工程实践中的核心落地方案。基于 分布式架构与微服务设计 视角&#xff0c;剖析实际痛点、架…

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

2026/8/5 8:19:55

MoneyPrinterPlus实战指南&#xff1a;AI视频批量生成与自动化发布完整解决方案 【免费下载链接】MoneyPrinterPlus AI一键批量生成各类短视频,自动批量混剪短视频,自动把视频发布到抖音,快手,小红书,视频号上,赚钱从来没有这么容易过! 支持本地语音模型chatTTS,fasterwhisper,…

昇腾AI代理实现多号通话自动化

昇腾AI代理实现多号通话自动化

2026/8/8 0:03:20

基于昇腾&#xff08;Ascend&#xff09;硬件与AtomGit AI社区的开源生态&#xff0c;结合AI Agent技术&#xff0c;可以实现一个模拟“通话重复使用机号复制”功能的安卓手机应用原型。其核心是利用AI Agent进行意图理解、任务编排和自动化操作&#xff0c;模拟或管理多号码的…

2026年Graph+AI Agents最新创新思路

2026年Graph+AI Agents最新创新思路

2026/8/8 0:03:20

本次围绕GraphAI Agents这个方向筛选了15篇高质量论文&#xff0c;都是近年来具有较高引用价值或方法创新的研究工作&#xff0c;其中部分来自IJCAI、AAAI、ICRA。 对于论文er来说&#xff0c;这些论文方法结构清晰、可复现性较强&#xff0c;在多个任务上都有可延展的空间。如…

Wand-Enhancer 指南:5分钟解锁Wand专业版功能,永久移除2小时限制

Wand-Enhancer 指南:5分钟解锁Wand专业版功能,永久移除2小时限制

2026/8/8 0:03:20

Wand-Enhancer 指南&#xff1a;5分钟解锁Wand专业版功能&#xff0c;永久移除2小时限制 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer 还在为Wan…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/8 5:07:31

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具&#xff0c;覆盖选题构思、文献整理、内容生成、格式排版等核心场景&#xff0c;真正帮你高效搞定论文难题。 一、全流程王者&#xff1a;一站式搞定论文全链路&#xff08;一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/7 8:02:42

2026年真正好用的AI论文工具&#xff0c;核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测&#xff0c;千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队&#xff0c;覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/8 2:30:15

告别游戏崩溃&#xff1a;XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…