Qt Creator:将.exe输出复制到一个文件夹中

时间:2014-05-12 08:36:01

标签: qt qt-creator qt5 qmake

如果问题已被提出,我很抱歉,经过一些研究后我找不到答案。我想自动将项目的.exe复制到文件夹中。

我正在使用Qt creator 5.0.1 MSCV2010,它总是提供两个输出:发布和调试。

例如,我希望/release/project.exe位于/release/exec/project.exe

我看到我可以在.pro中复制像.dll这样的文件:

INSTALLS =

但它只适用于已存在的文件,或者在编译后生成.exe。我想我可以将其指定为:

projects settings->Build compilation->step Make : jom.exe in C:\path\to\project-release

但我不知道需要什么论点, 此致

3 个答案:

答案 0 :(得分:1)

在Windows上,您可以使用DLLDESTDIR变量来指定复制目标DLL或exe的位置。只需将其添加到.pro:

即可
CONFIG(release, debug|release): DLLDESTDIR +=  $$PWD/../exec

在Linux上,您可以使用QMAKE_POST_LINK变量,该变量包含在将TARGET链接在一起后执行的命令。所以它就像:

CONFIG(release, debug|release): QMAKE_POST_LINK += $$quote(cp project $$PWD/../exec)

此处project是您TARGET = project

提供的目标文件的名称

这些会将可执行二进制文件复制到比程序工作目录高一级的名为exec的目录中。你可以拥有自己的任意路径。

答案 1 :(得分:0)

使用命令参数

添加自定义构建步骤

for windows(假设您为发布版本执行此操作):

xcopy
Release\<target.exe> path\to\destination\file.exe /Y
%{buildDir}

答案 2 :(得分:0)

这应该有效。我找不到任何指向target_path的variable。所以我定义了它:

### to copy target file to build folder
CONFIG(debug, debug|release) {
    TARGET_PATH = $$OUT_PWD/debug
}
CONFIG(release, debug|release) {
    TARGET_PATH = $$OUT_PWD/release
}

win32: QMAKE_POST_LINK += copy /y "$$shell_path($$TARGET_PATH/app_name.exe)" "$$shell_path($$PWD/../build/)"
unix: QMAKE_POST_LINK += cp "$$shell_path($$TARGET_PATH/app_name)" "$$shell_path($$PWD/../build/)"