热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

Qt编译前自动执行和编译后自动执行脚本

引用:https:blog.csdn.netwkr2005articledetails93711321qt的pro配置文件中也可添加各种编译前后的操作及配置,主要通过 QMAKE_

引用:https://blog.csdn.net/wkr2005/article/details/93711321

qt的pro配置文件中也可添加各种编译前后的操作及配置,主要通过 QMAKE_POST_LINK和QMAKE_PRE_LINK;

QMAKE_POST_LINK表示编译后执行内容

QMAKE_PRE_LINK表示编译前执行内容

举例如下:

#-------------------------------------------------
#
# Project created by QtCreator
2020-11-13T10:30:08
#
#
-------------------------------------------------
QT
-= gui
TARGET
= ComuPCIe
TEMPLATE
= lib
DEFINES
+= COMUPCIE_LIBRARY
# The following define makes your compiler emit warnings
if you use
# any feature of Qt
which has been marked as deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API
in order to know how to port your code away from it.
DEFINES
+= QT_DEPRECATED_WARNINGS
# You can also
make your code fail to compile if you use deprecated APIs.
# In order to
do so, uncomment the following line.
# You can also
select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES
+= QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
DESTDIR
+= ../bin
SOURCES
+= \
comupcie.
cpp
HEADERS
+= \
comupcie.h
unix {
target.path
= /usr/lib
INSTALLS
+= target
}
win32 {
binDstPath
= C:/radsim/bin
libDstPath
= C:/radsim/lib
headerDstPath
= "C:\\radsim\\include\\"
libSrcName
= $$DESTDIR/*.lib
binSrcName = $$DESTDIR/*.dll
headerSrcName = $$PWD/comupcie.h
exists($$headerSrcName){
message($$headerSrcName)
message($$headerDstPath)
message($$replace(headerSrcName, /, \\))
}
QMAKE_POST_LINK += copy /Y $$replace(headerSrcName, /, \\) $$headerDstPath
}

就是说, QMAKE_POST_LINK 后面可以追加要执行的命令,这些命令必须可以再命令行运行,当然,这就运行你写脚本了。

补充:

在windows系统下面,由于命令行中大部分命令不支持“/”,所以把“/”替换成“\”。

 

多条命令语句之间可以用&&隔开,自动连续执行;

 

定义的宏变量,在非首位置使用时,需要带{}, 如

 

PWD/">PWD/

PWD/{DESTDIR}/$${TARGET}.dll中的DESTDIR和TARGET。



推荐阅读
  • 本文详细介绍了ASP.NET缓存的基本概念和使用方法,包括输出缓存、数据缓存及其高级特性,如缓存依赖、自定义缓存和缓存配置文件等。通过合理利用这些缓存技术,可以显著提升Web应用程序的性能。 ... [详细]
  • 1、文件位置:mntwwwrootaddonswe7_wmallincwebstoretangshitable.inc.php改为下面这个$paramsarr ... [详细]
  • 理解 Hibernate 中的 fetch 和 lazy 属性配置
    本文探讨了在 Hibernate 中如何利用 fetch 和 lazy 属性来优化数据查询效率。通过调整这两个参数,可以有效管理数据库查询的性能,减少不必要的资源消耗。 ... [详细]
  • 利用 Jest 和 Supertest 实现接口测试的全面指南
    本文深入探讨了如何使用 Jest 和 Supertest 进行接口测试,通过实际案例详细解析了测试环境的搭建、测试用例的编写以及异步测试的处理方法。 ... [详细]
  • 深入解析 Android 文件下载的三种主流方法
    本文详细探讨了在 Android 平台上实现文件下载功能的三种常见方法:URLConnection、DownloadManager 和 OkHttp。每种方法都有其特点和适用场景,通过本文的分析,开发者可以根据实际需求选择最合适的技术方案。 ... [详细]
  • 本文介绍如何在Ubuntu操作系统中为DELL Latitude系列笔记本配置触摸板的自定义快捷键。此方法不仅适用于DELL品牌,其他品牌的笔记本也可能适用。通过编写简单的脚本,用户可以实现触摸板的快速开关。 ... [详细]
  • 探讨在C语言编程中,当头文件中声明了一个const变量,但在实现文件中却将其定义为非const变量时,编译器如何处理这一冲突。 ... [详细]
  • 本文探讨了前端包管理器的核心功能,包括注册机制、文件存储、上传下载、以及依赖分析等关键特性,并介绍了几种流行的前端包管理工具。 ... [详细]
  • 本文由「Vue虚拟实验室」的成员effort撰写,深入探讨了Vue CLI 3.0创建项目后的配置细节,特别是如何通过配置代理解决开发环境中的跨域问题。 ... [详细]
  • 如何在Android和iOS上捕获应用程序崩溃的日志
    本文详细介绍了如何在Android和iOS设备上收集应用崩溃时的日志,包括所需的工具、步骤以及一些常见的注意事项。 ... [详细]
  • Gradle复合构建详解
    自Gradle 3.3起,复合构建功能得以实现,这是一种能够整合其他独立构建的高级构建模式。本文将详细介绍复合构建与多项目构建的区别,以及如何在实际项目中应用复合构建。 ... [详细]
  • 深入理解希尔排序算法
    本文详细介绍了希尔排序的原理及其相对于传统插入排序的优势,并通过实例解析了希尔排序的具体实现过程,包括代码示例及性能分析。 ... [详细]
  • 免费获取:全面更新的Linux集群视频教程及配套资源
    本资源包含最新的Linux集群视频教程、详细的教学资料、实用的学习课件、完整的源代码及多种软件开发工具。百度网盘链接:https://pan.baidu.com/s/1roYoSM0jHqa3PrCfaaaqUQ,提取码:41py。关注我们的公众号,获取更多更新的技术教程。 ... [详细]
  • Python并行处理:提升数据处理速度的方法与实践
    本文探讨了如何利用Python进行数据处理的并行化,通过介绍Numba、多进程处理以及Pandas DataFrame上的并行操作等技术,旨在帮助开发者有效提高数据处理效率。 ... [详细]
  • 本文探讨了如何解决在Eclipse IDE外部通过命令行编译包含自定义包的Java项目时遇到的问题,并提供了详细的解决方案。 ... [详细]
author-avatar
运儿0315
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有