Qt 项目树工程,拷贝子项目dll到子项目exe运行路径
1、项目树工程
2、项目树列表
---- BuildAll
-------- App (exe)
-------- Database (dll)
注:使用 子项目–>添加库–>内部库 的方式
3、qmake 内置的变量
$$OUT_PWD 表示输出文件(如可执行文件、库文件等)的目录路径。
$$PWD:表示当前项目文件的目录路径。
$$TARGET:表示生成的目标文件的名称(不包括扩展名)。
$$TARGET_EXT:表示生成的目标文件的扩展名。例如,在 Windows 上,它可能为 .exe。
$$DESTDIR:表示安装目标文件时的根目录路径。默认情况下,它为空字符串,表示将目标文件安装在系统默认位置。
$$INCLUDEPATH:表示包含头文件的目录路径列表。
$$LIBS:表示要链接到目标文件中的库文件列表。
$$QMAKE_CFLAGS:表示 C 编译器选项。
$$QMAKE_CXXFLAGS:表示 C++ 编译器选项。
$$QMAKE_LFLAGS:表示链接器选项。
4、在 App 子项目的 .pro 文件下输入代码
在 App 子项目下拷贝 Database 子项目中的Database.dll文件
#####################################################################################################
########## 功能:项目树工程,将子项目库文件(dll、lib)拷贝到子项目(exe)的运行路径下 ############ 注意: 在 Windows 下,路径分隔符是反斜杠 \,而不是正斜杠 /; 在非 Windows 下,可以直接用正斜杠 / ##PROJECT_OUT_PWD = ""
win32 {# windows 下,将路径分隔符从 / 替换为 \PROJECT_OUT_PWD = $$replace(OUT_PWD, "/", "\\")
} else:unix {# unix 下,不用转换PROJECT_OUT_PWD = $$OUT_PWD
}# 先定义变量
DEBUG_SOURCE_DLL_PATH = ""
RELEASE_SOURCE_DLL_PATH = ""
DEBUG_DEST_EXE_PATH = ""
RELEASE_DEST_EXE_PATH = ""# 根据需要再对其赋值
win32 {DEBUG_SOURCE_DLL_PATH = $$PROJECT_OUT_PWD\..\Database\debug\Database.dllRELEASE_SOURCE_DLL_PATH = $$PROJECT_OUT_PWD\..\Database\release\Database.dll# 定义目标路径DEBUG_DEST_EXE_PATH = $$PROJECT_OUT_PWD\debugRELEASE_DEST_EXE_PATH = $$PROJECT_OUT_PWD\release} else:unix {DEBUG_SOURCE_DLL_PATH = $$PROJECT_OUT_PWD/../Database/debug/Database.soRELEASE_SOURCE_DLL_PATH = $$PROJECT_OUT_PWD/../Database/release/Database.so# 定义目标路径DEBUG_DEST_EXE_PATH = $$PROJECT_OUT_PWD/debugRELEASE_DEST_EXE_PATH = $$PROJECT_OUT_PWD/release
}# 根据构建模式选择复制命令
win32 {CONFIG(debug, debug|release) {# Debug 模式下的复制命令QMAKE_POST_LINK += copy /Y $$quote($$DEBUG_SOURCE_DLL_PATH) $$quote($$DEBUG_DEST_EXE_PATH)} else {# Release 模式下的复制命令QMAKE_POST_LINK += copy /Y $$quote($$RELEASE_SOURCE_DLL_PATH) $$quote($$RELEASE_DEST_EXE_PATH)}
} else {CONFIG(debug, debug|release) {# Debug 模式下的复制命令 (Unix-like 系统)QMAKE_POST_LINK += cp -f $$quote($$DEBUG_SOURCE_DLL_PATH) $$quote($$DEBUG_DEST_EXE_PATH)} else {# Release 模式下的复制命令 (Unix-like 系统)QMAKE_POST_LINK += cp -f $$quote($$RELEASE_SOURCE_DLL_PATH) $$quote($$RELEASE_DEST_EXE_PATH)}
}#####################################################################################################
5、在 Database 子项目的 .pro 文件下输入代码
将 Database 子项目中的 Database.dll 文件拷贝到子项目App
#####################################################################################################
############ 功能:项目树工程,将子项目库文件(dll、lib)拷贝到子项目(exe)的运行路径下 ##############注意: 在 Windows 下,路径分隔符是反斜杠 \,而不是正斜杠 /; 在非 Windows 下,可以直接用正斜杠 / ### 一般情况下,修改这两个工程名即可
# 源工程名
SOURCE_PROJECT_NAME = Database
# 目标工程名
TARGET_PROJECT_NAME = AppPROJECT_OUT_PWD = ""
win32 {# windows 下,将路径分隔符从 / 替换为 \\PROJECT_OUT_PWD = $$replace(OUT_PWD, "/", "\\\\")
} else:unix {# unix 下,不用转换PROJECT_OUT_PWD = $$OUT_PWD
}# 先定义变量
DEBUG_SOURCE_PATH = ""
RELEASE_SOURCE_PATH = ""
DEBUG_TARGET_PATH = ""
RELEASE_TARGET_PATH = ""# 根据需要再对其赋值
win32 {# 源文件路径DEBUG_SOURCE_PATH = $$PROJECT_OUT_PWD\\debug\\$$SOURCE_PROJECT_NAME.dllRELEASE_SOURCE_PATH = $$PROJECT_OUT_PWD\\release\\$$SOURCE_PROJECT_NAME.dll# 目标路径DEBUG_TARGET_PATH = $$PROJECT_OUT_PWD\\..\\$$TARGET_PROJECT_NAME\\debugRELEASE_TARGET_PATH = $$PROJECT_OUT_PWD\\..\\$$TARGET_PROJECT_NAME\\release} else:unix {# 源文件路径DEBUG_SOURCE_PATH = $$PROJECT_OUT_PWD/debug/$$SOURCE_PROJECT_NAME.soRELEASE_SOURCE_PATH = $$PROJECT_OUT_PWD/release/$$SOURCE_PROJECT_NAME.so# 目标路径DEBUG_TARGET_PATH = $$PROJECT_OUT_PWD/../$$TARGET_PROJECT_NAME/debugRELEASE_TARGET_PATH = $$PROJECT_OUT_PWD/../$$TARGET_PROJECT_NAME/release
}# 根据构建模式选择复制命令
win32 {CONFIG(debug, debug|release) {# Debug 模式下的复制命令QMAKE_POST_LINK += copy /Y $$quote($$DEBUG_SOURCE_PATH) $$quote($$DEBUG_TARGET_PATH)} else {# Release 模式下的复制命令QMAKE_POST_LINK += copy /Y $$quote($$RELEASE_SOURCE_PATH) $$quote($$RELEASE_TARGET_PATH)}
} else {CONFIG(debug, debug|release) {# Debug 模式下的复制命令 (Unix-like 系统)QMAKE_POST_LINK += cp -f $$quote($$DEBUG_SOURCE_PATH) $$quote($$DEBUG_TARGET_PATH)} else {# Release 模式下的复制命令 (Unix-like 系统)QMAKE_POST_LINK += cp -f $$quote($$RELEASE_SOURCE_PATH) $$quote($$RELEASE_TARGET_PATH)}
}#####################################################################################################
第4、第5步,选择其中一种方式即可。
相关文章:
Qt 项目树工程,拷贝子项目dll到子项目exe运行路径
1、项目树工程 2、项目树列表 ---- BuildAll -------- App (exe) -------- Database (dll) 注:使用 子项目–>添加库–>内部库 的方式 3、qmake 内置的变量 $$OUT_PWD 表示输出文件(如可执行文件…...
进程间通信方式
1>内核提供的原始通信方式有三种 1)无名管道 2)有名管道 3)信号 2>System V提供了三种通信方式 4)消息队列 5)共享内存 6)信号量(信号灯集) 3>套接字通信 7)socke…...
[linux]:匿名管道和命名管道(什么是管道,怎么创建管道(函数),匿名管道和命名管道的区别,代码例子)
目录 一、匿名管道 1.什么是管道?什么是匿名管道? 2.怎么创建匿名管道(函数) 3.匿名管道的4种情况 4.匿名管道有5种特性 5.怎么使用匿名管道?匿名管道有什么用?(例子) 二、命名…...
Python调用matlab程序
matlab官网:https://ww2.mathworks.cn/?s_tidgn_logo matlab外部语言和库接口,包括 Python、Java、C、C、.NET 和 Web 服务。 matlab和python的版本 安装依赖配置 安装matlab的engine 找到matlab的安装目录:“xxx\ extern\engines\python…...
FlinkSql 窗口函数
Windowing TVF 以前用的是Grouped Window Functions(分组窗口函数),但是分组窗口函数只支持窗口聚合 现在FlinkSql统一都是用的是Windowing TVFs(窗口表值函数),Windowing TVFs更符合 SQL 标准且更加强大…...
十分钟GIS——geoserver+postgis+udig从零开始发布地图服务
1数据库部署 1.1PostgreSql安装 下载到安装文件后(postgresql-9.2.19-1-windows-x64.exe),双击安装。 指定安装目录,如下图所示 指定数据库文件存放目录位置,如下图所示 指定数据库访问管理员密码,如下图所…...
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Span组件
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Span组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Span组件 鸿蒙(HarmonyOS)作为Text组件的子组件࿰…...
Leetcode—42. 接雨水【困难】
2024每日刷题(112) Leetcode—42. 接雨水 空间复杂度为O(n)的算法思想 实现代码 class Solution { public:int trap(vector<int>& height) {int ans 0;int n height.size();vector<int> l(n);vector<int> r(n);for(int i 0; …...
[Python] opencv - 什么是直方图?如何绘制图像的直方图?如何对直方图进行均匀化处理?
什么是直方图? 直方图是一种统计图,用于展示数据的分布情况。它将数据按照一定的区间或者组进行划分,然后计算在每个区间或组内的数据频数或频率(即数据出现的次数或占比),然后用矩形或者柱形图的形式将这…...
ppi rust开发 python调用
创建python的一个测试工程 python -m venv venv .\venv\Scripts\activatepip install cffi创建一个rust的lib项目 cargo new --lib pyrustlib.rs #[no_mangle] pub extern "C" fn rust_add(x: i32, y: i32) -> i32 {x y }Cargo.toml [package] name "p…...
网站后端开发 thinkphp6 入门教程合集(更新中)
thinkphp6 入门(1)--安装、路由规则、多应用模式 thinkphp6 入门(1)--安装、路由规则、多应用模式_软件工程小施同学的博客-CSDN博客 thinkphp6 入门(2)--视图、渲染html页面、赋值 thinkphp6 入门&#x…...
Web前端框架-Vue(初识)
文章目录 web前端三大主流框架**1.Angular****2.React****3.Vue**什么是Vue.js 为什么要学习流行框架框架和库和插件的区别一.简介指令v-cloakv-textv-htmlv-pre**v-once**v-onv-on事件函数中传入参数事件修饰符双向数据绑定v-model 按键修饰符自定义按键修饰符别名v-bind(属性…...
配置dns服务的正反向解析
服务端IP客户端IP网址192.168.153.137192.168.153.www.openlab.com 1:正向解析 1.1关闭客户端和服务端的安全软件,安装bind软件 [rootserver ~]# setenforce 0 [rootserver ~]# systemctl stop firewalld [rootserver ~]# yum install bind -y [rootnod…...
小白水平理解面试经典题目LeetCode 71. Simplify Path【Stack类】
71. 简化路径 小白渣翻译 给定一个字符串 path ,它是 Unix 风格文件系统中文件或目录的绝对路径(以斜杠 ‘/’ 开头),将其转换为简化的规范路径。 在 Unix 风格的文件系统中,句点 ‘.’ 指的是当前目录,…...
电力负荷预测 | 电力系统负荷预测模型(Python线性回归、随机森林、支持向量机、BP神经网络、GRU、LSTM)
文章目录 效果一览文章概述源码设计参考资料效果一览 文章概述 电力系统负荷预测模型(Python线性回归、随机森林、支持向量机、BP神经网络、GRU、LSTM) 所谓预测,就是指通过对事物进行分析及研究,并运用合理的方法探索事物的发展变化规律,对其未来发展做出预先估计和判断。…...
YY调音台:音频后期处理
我从事影视后期处理的工作,主要负责音频、音效合成这块工作内容。在影视作品中,声音不仅仅是背景元素,它在叙事和创造情感氛围上发挥着至关重要的作用。我们的工作不仅要让听众听到声音,更要让他们通过声音感受到情感的波动和故事…...
一键部署一个监控系统hertzbeat
效果 特点 一站式监控告警通知,支持应用服务,数据库,操作系统,中间件,云原生,网络等。 易用友好,无需 Agent,全页面操作,鼠标点一点就能监控告警。 强大监控模版能力&…...
为电子表格嵌入数据库,Excel/WPS一键升级为管理系统
将Excel表格转化为管理系统,这款工具能够实现只需导入表格数据,即可自动生成相应的软件和APP。 表格办公的烦恼,有遇到吧? 对于具有一定规模的企业而言,各类表格如同繁星般众多,既有日常使用的常规表格&a…...
搜索与图论(一)(深搜,广搜,树与图的存储遍历,拓扑排序)
一、DFS 往深里搜,搜到叶子结点那里,回溯,到可以继续到叶子结点深搜的位置。 1、回溯一定要恢复现场 2、定义一个与当前递归层数有关的终止条件(题目要求的东西) 3、每层都用循环判断是否存在可以dfs的路 输出数字…...
【开源】基于JAVA+Vue+SpringBoot的停车场收费系统
目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 停车位模块2.2 车辆模块2.3 停车收费模块2.4 IC卡模块2.5 IC卡挂失模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 停车场表3.2.2 车辆表3.2.3 停车收费表3.2.4 IC 卡表3.2.5 IC 卡挂失表 四、系统实现五、核心代码…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...
中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试
作者:Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位:中南大学地球科学与信息物理学院论文标题:BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接:https://arxiv.…...
《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
今日科技热点速览
🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...
ios苹果系统,js 滑动屏幕、锚定无效
现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...
.Net Framework 4/C# 关键字(非常用,持续更新...)
一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...
AspectJ 在 Android 中的完整使用指南
一、环境配置(Gradle 7.0 适配) 1. 项目级 build.gradle // 注意:沪江插件已停更,推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...
React---day11
14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store: 我们在使用异步的时候理应是要使用中间件的,但是configureStore 已经自动集成了 redux-thunk,注意action里面要返回函数 import { configureS…...
Fabric V2.5 通用溯源系统——增加图片上传与下载功能
fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...
