Visual Studio 2008中的Qt4 - moc-ed文件被排除在构建之外?

6 qt visual-studio-2008

最近我从Qt Software安装了VS Addin,我将.pro项目导入VS2008.一般来说,一切都很好,只有一个小而烦人的例外.

假设我有一个file.cpp,它有一个声明它是Q_OBJECT的类.因此,这样的文件是MOC-ed并且生成了moc_file.cpp,并且在"生成的文件"下的解决方案中可用.到现在为止还挺好.

有趣的是,当我在file.cpp中更改某些内容(例如添加一行),并使用Ctrl + S保存文件时,moc_file.cpp将从构建中排除(您可以在图标上看到无条目符号) ).当我按F7构建解决方案时,我遇到了许多典型的链接器错误.为了解决这个问题,我需要转到moc_file.cpp的属性,并将"Exclude from build"从"Yes"更改为"No".一切正常.

其他人是否经历过同样的事情?难道我做错了什么?

小智 7

问题解决了.我发现在我手工制作的描述我的项目的.pro文件中,我将MOC_DIR指定为:

MOC_DIR = .moc

导入到Visual Studio目录后,"生成的文件"对于Release和Debug都是相同的.因此,当我的活动配置是Debug时,例如,当我保存文件时,它被排除在构建之外,因为它对于与Release相关的文件是明智的 - 就像rpg和Andrew建议的那样.将目录更改为.moc\$(ConfigurationName)后,问题不再出现(我在解决方案中看到每个生成文件的2个版本 - 每个配置一个).

谢谢大家的帮助!