我经历了“标准”步骤(清理、“深度”清理、手动删除*.idb,*.pdb,*il*等),这没有解决“断点在错误的行上”的问题,但至少可以编译和运行/调试。
然后,(出于无关原因),我创建了一个命令行程序,发出一个将CPP编译为OBJ的命令,并得到了一个奇怪的错误:
cl : Command line error D8037 : cannot create temporary il file; clean temp directory of old il files
我以前从未听说过这个,所以通过网络搜索找到了微软网站详细介绍该错误:
http://msdn.microsoft.com/en-us/library/bb385201(v=VS.90).aspx
在我的系统中,TMP
目录中似乎有太多的_CL_hhhhhhhh.ss
文件。经过搜索,我发现在该目录下确切地有6,063
个这样的文件,时间跨度大约为一年。我以前从未听说过这些文件(“临时编译器文件”)。在Microsoft网站上搜索显示,这种错误至少在MSVS 2005、2008和2010中存在。由于它们是“临时”文件,我认为应该有某种“清理”或“回收”算法?
这个限制有多少个
_CL_hhhhhhhh.ss
文件? (我在一种情况下发现达到6,063时会出现此错误.)为什么我从EXE中执行“编译”时会看到此错误,而在MSVS IDE内部执行“编译”时不会?(我直接从命令行执行“编译”时也看不到此错误。)
我是否应该定期清理这些文件来对我的开发机进行“维护”?
我还需要考虑寻找和删除哪些其他“cruft”文件吗?
顺便说一下,我知道MSVS项目GUID被缓存在注册表中,以便IDE可以“找到”手动移动以“修复”与其他项目文件的链接/依赖关系的项目文件。如果有人有建议,我想知道如何清除它们。
这确实引出了最终的问题:“使用MSVS在开发机上累积了哪些隐藏的残留物?”
Win7/64,C++ MSVS 2008,NTFS
D8037
)。 - charley