当我从我们的 SVN 下载一个新副本,然后运行我的程序时,Qt 告诉我我的一个 SLOTS 不起作用,但是用一个方便的花花公子 make clean 然后 make,它似乎解决了这个问题。我继续在我的 PC 上更改代码,并且该消息不再显示。
C++ Qt 4.6 gcc
有人遇到过这个问题吗?和想法?
谢谢
当我从我们的 SVN 下载一个新副本,然后运行我的程序时,Qt 告诉我我的一个 SLOTS 不起作用,但是用一个方便的花花公子 make clean 然后 make,它似乎解决了这个问题。我继续在我的 PC 上更改代码,并且该消息不再显示。
C++ Qt 4.6 gcc
有人遇到过这个问题吗?和想法?
谢谢
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"
我猜?您的存储库中有一个文件已被删除make clean
但未被重新创建make
(可能是因为不再需要它),并且该文件中的某些内容导致了问题。
如果您将 .moc 文件存储在存储库中(您不应该),那么它们可能与现实不同步。amake includes
也能解决问题吗?
当您执行 a 时,所有内容都会被删除make clean
?重新制作项目后有什么?所有清理的文件都应该重新制作。如果他们不是,比如 Anon。说,其中一个可能正在做奇怪的事情。