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 中启动应用程序之前,如何将我在 Qt for Android 中的 .so 文件复制到 android-build/libs/arm64-v8a 中
从 QT Creator 加载构建的 exe 与从文件系统加载 exe 不同吗? [网络套件问题]