在一个解决方案中,我有两个VC ++项目。项目A具有链接器输入,这些输入是由项目B编译的.obj文件。
Visual Studio(2008)总是告诉我项目A“已过时”,并提示我询问是否要重建它,每次我想运行/调试/构建/等等。甚至在构建整个解决方案之后立即:我做了一个成功的完整构建,然后再次单击Build,它想要重新链接项目A.
如何防止这种情况发生?任何人都明白这里发生了什么?
答案 0 :(得分:2)
我认为解决方案是停止使用其他项目中的.obj文件。相反,将A和B项目共有的代码分解为自己的静态库C,并将A和B链接到它。
答案 1 :(得分:2)
我刚刚遇到 Visual Studio 2010 (包含和不包含SP1)的问题,感谢Ted Nugent我能够修复它。诀窍是检查项目中列出的所有C ++头文件是否仍然存在,并删除不存在的C ++头文件。显然这是编译器中的一个错误。
答案 2 :(得分:1)
发生了类似的事情。我正在处理使用系统时间的代码,在调试过程中,我对它进行了大量的研究。不知何故,文件得到了一些糟糕的时间戳。在构建中,它显示了哪些文件正在重新编译,所以我只是打开每个文件,强制进行更改(添加空格,删除空格),然后重新保存。
与旧的unix“touch”相似。
在一个项目中,我必须对其包含文件执行相同操作。但在“触摸”这样的文件后,问题就消失了。