Qt如何编写生成后事件

我们都知道VS能编写生成后事件,用于指定程序编译之后执行某些命令行,常见的如文件的拷贝、清理等等;那么,Qt能否支持支持在 .pro 文件中指定生成后事件呢,答案是肯定的。

下面是给出的一个简洁的例子:

cpp 复制代码
DESTDIR     = D:/APP_QT/bin/GuiLib/Access/lib      # 指定编译最终文件的生成路径
win32 {
    QMAKE_TARGET_ARCH = x64
} else {
    QMAKE_TARGET_ARCH = x86_64
}

# 区分release和debug版本,debug文件后缀自动添加d
CONFIG(release, debug|release) {
    # release版本
    DESTDIR = $${DESTDIR}/$${QMAKE_TARGET_ARCH}/release
    TARGET = $${TARGET}
} else {
    # debug版本
    DESTDIR = $${DESTDIR}/$${QMAKE_TARGET_ARCH}/debug
    TARGET = $${TARGET}d
}

# 注意路径格式要进行转换,否则执行copy指令会报错
win32: PWD = $$replace(PWD, "/", "\\")
win32:DESTDIR =$$replace(DESTDIR, "/", "\\")
POST_DIR_INCLUDE = D:\\APP_QT\\bin\\GuiLib\\Access\\include
POST_DIR_LIB = D:\\APP\\bin

# 创建目标拷贝路径,避免因为路径不存在导致的copy指令错误
# 拷贝文件到目标路径 /Y : 默认执行覆盖
QMAKE_POST_LINK += mkdir $${POST_DIR_INCLUDE} | mkdir $${POST_DIR_LIB} | copy $${PWD}\*.h  $${POST_DIR_INCLUDE} /Y | copy $${DESTDIR}\* $${POST_DIR_LIB} /Y

以上,笔者有一个Qt .pro 管理的lib项目,在编译生成lib库之后,需要将头文件和生成的库文件拷贝到指定目录下。实测Ok,供参考~

相关推荐
leo_2324 分钟前
从开发语言角度来谈谈SMP(上)--SMP(软件制作平台)语言基础知识之十三
开发语言·开发工具·smp(软件制作平台)·应用系统
Larry_Yanan8 小时前
Qt多进程(三)QLocalSocket
开发语言·c++·qt·ui
醒过来摸鱼8 小时前
Java classloader
java·开发语言·python
superman超哥8 小时前
仓颉语言中元组的使用:深度剖析与工程实践
c语言·开发语言·c++·python·仓颉
小鸡吃米…8 小时前
Python - 继承
开发语言·python
JIngJaneIL9 小时前
基于java+ vue农产投入线上管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot
祁思妙想9 小时前
Python中的FastAPI框架的设计特点和性能优势
开发语言·python·fastapi
唐装鼠9 小时前
rust自动调用Deref(deepseek)
开发语言·算法·rust
Lucas555555559 小时前
现代C++四十不惑:AI时代系统软件的基石与新征程
开发语言·c++·人工智能
源代码•宸9 小时前
goframe框架签到系统项目(BITFIELD 命令详解、Redis Key 设计、goframe 框架教程、安装MySQL)
开发语言·数据库·经验分享·redis·后端·mysql·golang