qmake 时复制文件(自动在编译前做一些操作,且写在.pro文件里)
有时在编译前需要准备一些文件,例如修改了 QtCreator 的编译输出目录: Build & Run > Default build directory
,使用 Promote 后需要在编译前把相应 Widget 的头文件复制到 .o
文件所在的目录,这时就可以在 .pro
文件中使用复制文件的命令(其实就是执行系统命令),让 qmake 执行这些命令来复制文件,而不是手动的复制需要的文件。
可以使用 qmake 时能执行系统的命令的特性来做很多事情,不只是复制文件。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
QT += core gui sql xml
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = Schedule
TEMPLATE = app
CONFIG -=app_bundle
# Output directory
CONFIG(debug, debug|release) {
compiled = debug
}
CONFIG(release, debug|release) {
compiled = release
}
# All temporay files are all put in the directory $$compiled
DESTDIR = bin
OBJECTS_DIR = $$compiled
MOC_DIR = $$compiled
RCC_DIR = $$compiled
UI_DIR = $$compiled
# Copy promotion required headers to build directory
win32 {
COPY_DEST = $$replace(OUT_PWD, /, \\)
system("copy gui\\ClassWidget.h $$COPY_DEST\\$$compiled\\ClassWidget.h")
system("copy gui\\CourseWidget.h $$COPY_DEST\\$$compiled\\CourseWidget.h")
system("copy gui\\TeacherWidget.h $$COPY_DEST\\$$compiled\\TeacherWidget.h")
}
mac {
system("cp gui/ClassWidget.h $$OUT_PWD/$$compiled/ClassWidget.h")
system("cp gui/CourseWidget.h $$OUT_PWD/$$compiled/CourseWidget.h")
system("cp gui/TeacherWidget.h $$OUT_PWD/$$compiled/TeacherWidget.h")
}
SOURCES += main.cpp
|
在 .pro 文件里路径分隔符都是 /,但在 Windows 中, / 对于 copy 命令有特殊用途,所以需要把 / 替换为 \,否则复制文件会失败
http://www.qtdebug.com/qtbook-misc-qmake-copy-file/
qmake 时复制文件(自动在编译前做一些操作,且写在.pro文件里)的更多相关文章
- Java进阶知识点6:并发容器背后的设计理念 - 锁分段、写时复制和弱一致性
一.背景 容器是Java编程中使用频率很高的组件,但Java默认提供的基本容器(ArrayList,HashMap等)均不是线程安全的.当容器和多线程并发编程相遇时,程序员又该何去何从呢? 通常有两种 ...
- 如何写一个bat文件,让他去执行某一个地方的bat文件
新建一个bat文件,里面编写如下内容:@echo offcall 你bat文件的路径\startup.bat pause --------------------------------------- ...
- Qt之pro文件解析
在我们创建Qt工程项目时,Qt Creator总会创建一个.pro文件,我们称.pro文件为Qt的工程管理文件.一个工程项目可以包含一个或多个.pro文件.理解和掌握pro文件的用法,将有利于Qt开发 ...
- Qt .pro文件详解
在我们创建Qt工程项目时,Qt Creator总会创建一个.pro文件,我们称.pro文件为Qt的工程管理文件.一个工程项目可以包含一个或多个.pro文件.理解和掌握pro文件的用法,将有利于Qt开发 ...
- 【Qt pro 文件配置】
一.默认配置 默认的pro文件配置如下: 如果采用Qt默认的pro配置,其编译后产生的文件会默认集中分布在debug和release目录下,如下图的obj和moc等文件对后续打包发布并没有意义. 二. ...
- 如何将Unicode文本写到日志文件中
有时为了定位问题,我们需要结合打印日志来处理.特别是较难复现的,一般都需要查看上下文日志才能找出可能存在的问题.考虑到程序要在不同语言的操作系统上运行,程序界面显示要支持Unicode,打印出来的日志 ...
- qmake.exe是在Qt安装编译时生成的,里面内嵌了Qt相关的一些路径(最简单的方法是保持一样的安装路径,最方便的办法是设置qt.conf文件)
在网上直接下载别人编译好的Qt库,为自己使用省了不少事.但往往也会遇到些问题,其中Qt version is not properly installed,please run make instal ...
- 向modesim中添加alter库 (或者在每次仿真时将库文件加入仿真文件夹一起编译)
在ModelSim中进行仿真需要加入Quartus提供的仿真库,原因是下面三个方面: ·Quartus不支持Testbench: ·调用了megafunction或者lpm库之类的Alte ...
- qmake使用方法(自动生成Makefile文件)
qmake的使用简介 下面是qmake的简单介绍和使用要领,更为详细的信息请参阅手册 qmake的介绍 手写Makefile是比较困难并且容易出错的,尤其是需要给不同的平台和编译器组合写几个Makef ...
随机推荐
- [React Router v4] Conditionally Render a Route with the Switch Component
We often want to render a Route conditionally within our application. In React Router v4, the Route ...
- [Postgre] Insert Data into Postgre Tables
// Insert one row INSERT INTO movies (title, release_date, count_stars, director_id) VALUES ( 'Kill ...
- [自学AndroidStudio系列]第二篇章:高速上手AS小技巧其一
事实上看过第一篇的文章的人可能发现了,这个系列实际上是针对,有android开发经验的,之前使用Eclipse的开发人员;所以,避免无谓的口舌,直接进入说重点吧; 关闭项目自己主动打开 AS会自己主动 ...
- CSS学习小结
接触了B/S的东西之后才发现自己须要学习的东西太多了.html.xml.JavaScript.jquery.HTMLdom.VBScript.ajax.jquery.json等等技术都是须要我们一一研 ...
- SQLite编码
•SQLite编码 •讲师:李明杰 •技术博客:http://www.cnblogs.com/mjios •SQLite3 •在iOS中使用SQLite3,首先要添加库文件libsqlite3.dyl ...
- 给自己的java程序生成API帮助文档
一.问题发现: 课本上提到"要学会给自己编写的程序生成API帮助文档",但又没有说明具体的操作步骤. 二.分析: API帮助文档有什么用?这么理解吧:如果想告诉别人你的类如何使用, ...
- NOIP模拟 table - 矩阵链表
题目大意: 给一个n*m的矩阵,每次交换两个大小相同的不重叠的子矩阵,输出最后的矩阵 题目分析: 这题向我们展示了出神入化的链表是如何炼成的.思想都懂,实现是真的需要技术,%%% 用一副链表来表示该矩 ...
- 手动安装配置Android Studio
官网下载Android Studio安装包后安装启动Android Studio,程序提示安装SDK,因为代理/FQ的原因,安装component失败,错误如下: Preparing "In ...
- Matlab Tricks(十八)—— 矩阵间元素距离的计算
两个矩阵间元素(向量)距离的度量,首先想到的是遍历,循环的方式,显然 matlab 下的编程并不推荐,matlab 下矩阵向量化编程效率尤高. 先考虑两个向量距离的计算: ∥x−y∥2=∥x∥2+∥y ...
- 简明Python3教程 首页
A Byte of Python 'A Byte of Python' is a free book on programming using the Python language. It serv ...