网上搜了一下,国内百度搜索排名靠前的文章都没有把这个问题说清楚。
这个问题就是要彻底解决。
网上一般的说法就是缺文件,看看项目列表的文件有没有不存在的,缺头文件,缺资源,缺源文件,缺各种添加项,甚至readme.txt
这个方法可以解决部分因为缺文件导致的
但是我的项目不缺文件
然后国内程序员竟然想到了直接修改VC的全局配置,不进行unsucessfulbuild检测,不进行AlwaysCreate,真是佩服这些程序员天马行空的执行力。
还有说vs2010 sp1就没事的,我的就是sp1
其实这个问题早在VC6的时候就经常遇到,比如某程序员因为测试,调了本机时间,然后修改了某个文件保存,于是某个文件的最后修改时间变成了未来,于是VC就判断这个文件修改了。
本着这个思路,先看看项目文件源文件最后修改时间是否有异常,没有。
这个项目相对别的项目有一个特殊情况就是把一个.lib文件以库类型添加项的形式加入项目,检查了一下这个.lib文件,发现可能就是这个文件导致的。
因为项目不断被拷来拷去,最后修改时间一直没变,但是文件创建时间是每次拷贝的时间,因此这个文件的最后修改时间是早于创建时间的,于是touch了一下,把最后修改时间和最后访问时间改到了现在,然后重新编译项目,问题解决。
还有一种情况,就是每次AlwaysCreate,实际上什么也不做,这种可能是生成的中间目录有些时间问题,把中间生成文件和目录都删掉,重新来一次就好了
PS:touch是linux命令行,我装了msys2,基础的linux命令行都有,工作还是比较方便的。