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

Posted

技术标签:

【中文标题】Qt Creator:将 .exe 输出复制到文件夹中【英文标题】:Qt Creator: copy .exe output into a folder 【发布时间】:2014-05-12 08:36:00 【问题描述】:

很抱歉,如果该问题已被提出,但经过一些研究后我找不到答案。我想将项目的 .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

但我不知道需要什么参数, 问候

【问题讨论】:

请注意,qmake 和 Qt Creator 是两个不同的东西。他们经常一起使用,但无论哪种方式都不相互依赖。 【参考方案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 的目录,该目录比程序工作目录高一级。你可以有你的任意路径。

【讨论】:

非常感谢,第一个命令对我来说很好。我不知道 .pro 的这个说明,但它在未来会很有用。【参考方案2】:

使用命令和参数添加自定义构建步骤

对于 Windows(假设您正在为发布版本执行此操作):

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

【讨论】:

【参考方案3】:

这应该可行。我找不到任何指向 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/)"

【讨论】:

以上是关于Qt Creator:将 .exe 输出复制到文件夹中的主要内容,如果未能解决你的问题,请参考以下文章

qt creator 使用Ui文件的问题

在 Qt Creator 中启动应用程序之前,如何将我在 Qt for Android 中的 .so 文件复制到 android-build/libs/arm64-v8a 中

升级 gdb 以在 Qt Creator 中使用

从 QT Creator 加载构建的 exe 与从文件系统加载 exe 不同吗? [网络套件问题]

使用 Qt Creator 发布版本需要哪些文件? [复制]

无法在 Qt Creator 中启动 gdb.exe