Qt-依赖类

4

我在项目中添加了一个类。过了一段时间之后,我不再需要这个类,并从Qt Designer中删除了源代码和头文件。虽然没有使用或导入该类,但是当我构建项目时,我收到以下消息:

:-1: error: dependent 'C:\Qt\Project\dists\registration.h' does not exist.

我试图在项目的所有文件中搜索 registration.h,删除了 debug 文件夹。但没有任何结果。该类没有被引用。仍然无法构建项目。

这些依赖关系到底在哪里?


如果你删除了构建文件夹,但错误仍未消失,则registration.h肯定在你的源文件夹中某处被提及。尝试在所有文件上进行全文搜索。 - Pavel Strakhov
请在您的项目文件中查找“HEADERS”行。 - otisonoza
不,我认为那是被QT Designer删除了(在项目文件中没有任何包含registration[.h][.cpp]的行)。 - marxin
你尝试过清理、重建吗? - otisonoza
值得尝试使用/不使用Shadow Build。 - otisonoza
问题已解决,我在回复中进行了解释。虽然我仍然不知道为什么会发生这种情况,但我可以继续进行项目... - marxin
3个回答

6

好的,我已经理解了。很奇怪...

我删除了文件dists.pro.userdists.pro.user.ddfc87e。 重新配置项目后它开始工作了(如果有人知道原因,那就太好了...)

感谢您的关注;)


4
为了方便日后寻找答案的人,还有另一种解决方法。

我试图在项目中的所有文件中搜索registration.h,删除了debug文件夹。 没有任何结果。 该类没有被引用。 仍然无法构建项目。

如果您在项目的所有文件中使用*搜索所有类型的文件,您将找到仍然使用这些引用的makefile。
摆脱错误的简单方法是在QtCreator中对项目运行qmake。 它会重写这些makefile。

1
我也遇到了这个问题,我有一个API文件夹(在.pro文件中用环境变量指示),其中删除了一个头文件。虽然makefile中确实有出现,但qmake并没有解决它。我不得不手动删除makefile。有趣的是:对于这个问题,你必须使用其他软件搜索所有文件,而不是QtCreator,因为你永远不会在它的搜索中找到makefile。 - A. Ocannaille

2

我曾经遇到过同样的问题,但最终找到了错误原因。

问题出在你的 .pro 文件中仍然包含文件 C:\Qt\Project\dists\registration.h

你需要从 .pro 中的 HEADERS 中删除该文件

然后清理你的项目, 运行 qmake 再编译它。 这样就可以解决问题了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接