如果我想执行.pro
命令,执行输出二进制文件或执行其他操作,我必须对chmod
文件进行哪些更改。
答案 0 :(得分:27)
我有类似的问题。每次执行Makefile时,我都想要一个特殊的工具(版本控制器)来运行代码。这是解决方案:
(将在Qmake Manual, Configuring qmake's Environment, Section: Customizing Makefile Output中阅读)
创建自己的Makefile目标。指定命令等。
mytarget.target = .buildfile
mytarget.commands = touch $$mytarget.target
QMAKE_EXTRA_TARGETS += mytarget
这样,您可以使用make mytarget
调用额外的目标。如果您想将它们绑定到实际的构建目标,则必须添加:
POST_TARGETDEPS += mytarget
希望有所帮助。
最好的问候 d
答案 1 :(得分:0)
如果您使用的是Qt Creator,则可以在“项目”面板中添加自定义构建步骤:http://doc.qt.nokia.com/qtcreator-2.1/creator-build-settings.html#adding-custom-build-steps
答案 2 :(得分:0)
正确答案取决于您想要什么,以及何时。但是,正如之前发布的一些评论中所见QMAKE_POST_LINK
可能是您想要的而不是POST_TARGETDEPS
。
查看相关帖子: QMake: execute script after build
首先,当您使用POST_TARGETDEPS
在创建exe之前(在Windows中)或在重新创建之前(在Linux中)! QMake根据平台和编译器的不同而有所不同。
我需要做一些"符号处理"在重新编译时的exe上。 POST_TARGETDEPS
在Windows(使用mingw)和Linux(使用gcc)中给了我问题。在Windows中,它过早地执行了我的脚本,并且在Linux中它在我修改它之后覆盖了我的exe(即在我在我的外部脚本中删除它之后将我的调试信息添加回exe)。然而,QMAKE_POST_LINK
在两种情况下都表现完美。相比之下,它也简短,甜美,更清晰!
答案 3 :(得分:0)
按照给定的顺序制作东西的另一种方法是使用空的" super"目标:
super.depends = target_pre first target_post
QMAKE_EXTRA_TARGETS += super
其中first
- 是默认的qmake目标,target_pre
和target_post
是一些自定义目标。现在make super
就是这样做的。
编辑:看起来在最后版本的Qt构建的依赖项中运行在并行中,因此此解决方案无法正常工作。