0

当我从我们的 SVN 下载一个新副本,然后运行我的程序时,Qt 告诉我我的一个 SLOTS 不起作用,但是用一个方便的花花公子 make clean 然后 make,它似乎解决了这个问题。我继续在我的 PC 上更改代码,并且该消息不再显示。

C++ Qt 4.6 gcc

有人遇到过这个问题吗?和想法?

谢谢

4

3 回答 3

4

Qt 在构建时会创建一大堆关于 Q_OBJECT 类的元数据。该元数据存储在“moc”文件中,其中一个文件可能与您的 C++ 代码不一致。在版本控制系统中存储中间构建阶段通常是个坏主意。我建议运行make clean,然后查看您的 VCS 以找出哪些文件被删除,然后提交结果。

在svn中:

make clean
svn st     # you should see some files deleted
svn rm <all the deleted files that svn st showed>
svn ci -m "Cleaned out intermediate build stages"
于 2009-12-09T02:52:22.143 回答
1

我猜?您的存储库中有一个文件已被删除make clean但未被重新创建make(可能是因为不再需要它),并且该文件中的某些内容导致了问题。

于 2009-12-08T22:40:22.460 回答
1

如果您将 .moc 文件存储在存储库中(您不应该),那么它们可能与现实不同步。amake includes也能解决问题吗?

当您执行 a 时,所有内容都会被删除make clean?重新制作项目后有什么?所有清理的文件都应该重新制作。如果他们不是,比如 Anon。说,其中一个可能正在做奇怪的事情。

于 2009-12-08T23:17:32.430 回答