Qt从顶层调用自定义子目标
Posted
技术标签:
【中文标题】Qt从顶层调用自定义子目标【英文标题】:Qt call custom sub target from top level 【发布时间】:2017-06-20 09:29:25 【问题描述】:我有一个使用 SUBDIRS 的 Qt 5.8 项目,其中一个子目标有一个类似于此的 custom target:
main.pro:
SUBDIRS = subtarget
subtarget.pro:
mytarget.target = .buildfile
mytarget.commands = touch $$mytarget.target
mytarget.depends = mytarget2
QMAKE_EXTRA_TARGETS += mytarget
使用 qmake 从中生成 Makefile 将正确地将我的自定义目标添加到子目标 Makefile 中。但是我想从顶层 Makefile 调用它,这样我就可以从顶层调用“make mytarget”。请注意,此自定义目标不应默认运行,只能显式运行。
【问题讨论】:
【参考方案1】:诀窍是在顶层项目中定义一个同名的目标,并告诉 qmake 这个目标也应该调用子目标。这可以通过在 main.pro 中添加以下行来完成:
mytarget.target = .buildfile
mytarget.CONFIG += recursive
mytarget.recurse_target = .buildfile
QMAKE_EXTRA_TARGETS += mytarget
如果您有多个子项目,则此目标必须存在于所有子项目中。您可以为没有此类目标的项目创建虚拟目标,如下所示:
dummyTarget.target = .buildfile
QMAKE_EXTRA_TARGETS += dummyTarget
【讨论】:
谢谢,几乎成功了。但是我遇到了一个问题,需要虚拟对象的其他子目标设置了一些 PRE_TARGETDEPS 并且当它找不到时显然虚拟目标错误。 你能显示代码/错误日志吗?我不确定你的意思以上是关于Qt从顶层调用自定义子目标的主要内容,如果未能解决你的问题,请参考以下文章