在我的一些项目中,我使用 .pro 文件中配置的一些预构建步骤。所以qmake
每当激活时都会执行此步骤。
现在在 QtCreator 中,当我构建时(也是完全重建整个项目时),它并不总是运行qmake
,因为它试图变得聪明并优化它。它仅在 .pro 文件更改时运行它,从而导致多个问题。
另外一个常见的问题是,当你创建一个继承自 QObject 的类时after在该文件上运行 qmake,它不会注意到它,因此not run moc
在上面。此类问题只需手动运行即可解决qmake
通过 QtCreator 中的“构建”菜单。但如果我忘记了这一点,我有时会对因此而得到的编译错误感到困惑,这真的很烦人。
(如何)我可以强制 QtCreator 执行此步骤吗always构建项目时?
我考虑过添加 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 为每个构建重新运行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)