2011-06-09 138 views
6

在发布构建完成后,我想运行一个脚本。在Mac上构建完成后,让qmake执行shell脚本

我发现这个问题How to execute shell command after compile finished from .pro in QT?但答案不适用于我。我试着加入这个各种修改我的.pro文件:

CONFIG(release, debug|release) { 
    mytarget.target = ./MyScript.sh 
    mytarget.commands = touch $$mytarget.target 

    QMAKE_EXTRA_TARGETS +=mytarget 
    QMAKE_POST_LINK += mytarget 
} 

但这总是会导致“:-1:错误:mytarget:没有这样的文件或目录”。路径是正确的,'MyScript.sh'从命令行工作正常。

由于这适用于其他人,我想我做错了什么。我在Mac上使用Qt 4.7.2。

回答

8

路径相对于建立目录。如果您的脚本不在您的build目录中,则必须更改路径。 尝试使用../MyScript.sh

你为什么使用目标?如果您的唯一目的是在构建之后执行MyScript.sh,您只需要

QMAKE_POST_LINK += ./MyScript.sh 
+0

我会尝试它(现在不行),但我不认为这是问题所在。 “MyScript.sh”与我的Forms目录位于同一层,其中包含几个其他地方使用的头文件。由于“INCLUDEPATH + = ./Forms”似乎在做它的工作,我假定“./MyScript.sh”是正确的。 – 2011-06-10 00:20:47

+0

如果您想确定它,请尝试编写:“QMAKE_POST_LINK = pwd”。 – 2011-06-10 07:00:03

+0

@Galadrius Krunthar:INCLUDEPATH变量将更改发送到编译器以查找头文件的包含路径。它不会改变makefile查找相关文件的位置 - 您必须手动输入这些路径。 – 2011-06-12 14:53:21