项目记录-Qt pro pri 编译后拷贝文件

一、认识QMake工程文件基本元素

(1)变量可以用于存储临时的列表值,覆写存在的列表值或是扩展新的值

第一种赋值方法只包括同一行指定的值,下列代码显示了如何赋值列表值给变量:

HEADERS = mainwindow.h paintwidget.h

第二种赋值方法会使用“\”字符分隔列表值的项
变量的列表值可以使用如下方式扩展:

SOURCES = main.cpp mainwindow.cpp \
          paintwidget.cpp


(2)qmake会识别下列变量的值,并描述变量的内容

CONFIG:通用工程配置选项,是一个qmake生成MakeFile文件时的特殊变量。
DESTDIR:可执行文件或库文件的输出目录
FORMS:由uic处理的UI文件列表
HEADERS:构建工程使用的头文件列表
QT:Qt相关配置选项
RESOURCES:包含到最终工程的资源文件列表
SOURCES:用于构建工程的源文件列表
TEMPLATE:构建工程的模板,决定构建过程输出一个应用,一个库或是一个插件


变量的内容可以通过在变量名称前加“$$”符号来访问,用于将一个变量的内容赋值给另一个变量
TEMP_SOURCES = $$SOURCES
$$操作符可以被扩展用于操作字符串和值列表的内置函数中。


通常,变量用于包含空格分隔符的值列表,但有时需要指定包含空格的值,必须使用双引号包含。
DEST = "Program Files"
引号内的文本在值列表内作为单个值对待。类似的方法可以用于处理包含空格的路径,尤其是在Windows平台定义INCLUDEPATH和LIBS变量。

win32:INCLUDEPATH += "C:/mylibs/extra headers"
unix:INCLUDEPATH += "/home/user/extra headers"

 

二、项目相关 - 编译后使用 qmake $$replace函数拷贝文件

pro文件包含pri文件,在pri文件中进行拷贝,如下图所示

项目记录-Qt pro pri 编译后拷贝文件_第1张图片

//<  图中部分 WindowsTool.pri 代码

WindowsBuild {
    CONFIG      += WindowsToolEnabled
    DEFINES     += WindowsTool
    //< 将/替换为\\才能正确识别路径
    # replace函数的第一个参数必须是大写!
    DESTDIR_WIN = $$replace(DESTDIR, "/", "\\")
    PWD_WIN = $$replace(PWD, "/", "\\")

    QMAKE_POST_LINK += $$escape_expand(\\n) xcopy \"$$PWD_WIN\\dfu\\*.*\" \"$$DESTDIR_WIN\\dfu\\\" /S/Y  $$escape_expand(\\n)
}

实际使用

//< 地面站文件MainWindow.cc
//< "./"相对路径 与 QDir::currentPath() 绝对路径相同 
//< 路径(D:\Qt-Project\build-******-Desktop_Qt_5_9_3_MSVC2015_64bit-Debug)

QString program = QString("./dfu/DfuSe.exe");
QProcess  *_process = new QProcess;
_process->start(program);

./dfu/Dfuse.exe 可启动外部程序是因为在 WindowsTool.pri文件中,将外部程序拷贝至Debug下(Debug模式)

 

推荐大神关于cmake的文章

https://zhuanlan.zhihu.com/p/67458422?utm_source=com.youdao.note

你可能感兴趣的:(Qt,qt5)