gpt4 book ai didi

qt - 生成代码的qmake规则

转载 作者:行者123 更新时间:2023-12-04 03:55:14 26 4
gpt4 key购买 nike

我意识到我先前的问题对规则和依赖项有些困惑。如果qmake运行时目录“generated”中的源文件存在,则以下.pro文件生成一个makefile,该文件可以正常工作。

idl.target   = generated/qmtest.h
idl.commands = code_generator
idl.config = no_link
idl.depends = $$SOURCES $$HEADERS $$FORMS

TEMPLATE = app
INCLUDEPATH += generated
SOURCES += generated/*.cpp
PRE_TARGETDEPS += generated/qmtest.h
QMAKE_EXTRA_UNIX_TARGETS += idl

但是当qmake运行时,它仅生成一个makefile,而PRE_TARGETDEPS和QMAKE_EXTRA_UNIX_TARGETS并没有帮助我。我怎样才能让qmake生成一个makefile文件,该文件将把generate/的内容添加到SOURCES?

最佳答案

您可能需要分两次通过。

在您的qmake文件中,添加以下行:

include( generated/generated.pri )

然后,在code_generator脚本的末尾,将源添加到generate.pri文件中(以bash为例,但是对于几乎所有语言而言,想法都是相同的):
rm generated/generated.pri
for file in $( ls generated/*.cpp ); do
echo "SOURCES += ${file}" >> generated/generated.pri
done

第一次运行qmake文件时,generate/generated.pri可能为空。运行make时,它将填充generate.pri文件。第二次,它将重新创建make文件(作为源.pri文件的更改),然后再次编译。您也许可以弄乱其他可以为您完成第二阶段操作的命令。

关于qt - 生成代码的qmake规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2006747/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com