gpt4 book ai didi

qt-creator - 构建时强制 QtCreator 运行 "qmake"

转载 作者:行者123 更新时间:2023-12-02 17:29:06 27 4
gpt4 key购买 nike

在我的一些项目中,我使用 .pro 文件中配置的一些预构建步骤。所以qmake每当激活时都会执行此步骤。

现在在 QtCreator 中,当我构建时(也是完全重建整个项目时),它并不总是运行 qmake ,因为它试图聪明地优化这一点。它仅在 .pro 文件更改时才运行它,从而导致多个问题。

还有一个常见问题是,当您在该文件上运行 qmake 之后创建一个继承自 QObject 的类时,它不会注意到它,因此不会运行 moc在上面。只需手动运行 qmake 即可解决此类问题通过 QtCreator 中的“构建”菜单。但如果我忘记了这一点,我有时会对因此而得到的编译错误感到困惑,这真的很烦人。

(如何)我可以强制 QtCreator 在构建项目时始终执行此步骤?

我考虑过在项目配置中添加 qmake 作为构建步骤,但这似乎是解决此问题的肮脏黑客。

最佳答案

另一个肮脏的黑客,但更灵活一点:在 Linux/Mac 上添加“touch yourprojectfile.pro”作为构建步骤或分配外部工具调用。就像 touch "*.pro"在当前项目工作目录中运行。当 pro 文件被更改(通过 touch 模仿)时,将执行 qmake。不是很干净,但是外部工具加热键解决方案比将 qmake 添加到每个项目的构建步骤中更灵活。

更新:我终于找到了一个完全令人满意的解决方案。在pro文件中添加:

  qmakeforce.target = dummy
qmakeforce.commands = rm -f Makefile ##to force rerun of qmake
qmakeforce.depends = FORCE
PRE_TARGETDEPS += $$qmakeforce.target
QMAKE_EXTRA_TARGETS += qmakeforce

这会删除生成的 Makefile,从而强制 qmake 为每个构建重新运行。

关于qt-creator - 构建时强制 QtCreator 运行 "qmake",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12873437/

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