1.问题
如题目所言,最近遇到一个奇葩的问题:VS文件并未修改但是每次启动调试时,总是要将部分文件重新编译一遍,很浪费时间。
2.事出异常 必有妖
问题好像是突然出现的,但是看似莫名其妙的问题背后总是有原因的。想想最近是不是对电脑做了什么奇怪的事情呢!!
嗯,好像之前调整了一次系统的时间,原来的时间比实际的快一个月。
3.翻车现场
上面这张是工程目录的截图,将文件按时间进行排序,可以看到最上面有几个文件的最后修改时间比当前系统时间(9月4日为当时的正确时间)要晚。
3.原因
VS检查文件是否需要重新编译的一个条件就是文件最后的保存时间。因此,对于一些cpp文件,如果最后编辑时间比当前系统时间要晚,那么该文件在调试时会一直被重新生成。对于另外的一些文件,虽然时间是正常的,但如果其包含的.h文件的时间晚于系统当前时间,那么该cpp文件也会被反复编译。
4.解决
把时间有问题的文件重新保存一遍,问题就ok了。
另外,网上其他还提到反复编译可能是设置的原因,这里就不赘述了。