起因:
就在2019年4月27的前一日,自己不小心移除了一个d3dutil.cpp(自己写的工具类),然后我又通过右键—》添加—》现有项找了回来。然后当我再次编译运行时,就会出现如下错误!
然后,我就想,what fuck!!!,在我移除文件之前,程序就能跑啊,所以这肯定不是我代码的问题,肯定是visual studio这个辣鸡ide出的问题,肯定是它糟糕的机制出导致的,那么多乱七八糟的文件,肯定是我添加回来后,这些文件内容没更新过来,造成这种问题。
所以,我上网谷歌 visual studio移除文件 添加现有项,然后按着网上教程试了有三四个,无果。就这么花去我两个小时的时间!!!,可是仍然运行不了!(虽然遇到这种情况,我可以选一个最笨的方法,重新建一个文件,然后重新复制,粘贴,一个一个编译文件。)但这次,我并不打算这样,原因很简单,手误移除文件很正常,如果每次都是重建项目,很麻烦对不对,vs这么强大的ide,肯定有解决办法对吧。
但是, 在我按照网上方案试了好几次,还是报同样的错后,时间花去了将近5个小时,如果再继续下去,就不划算了,所以,我选择重建工程,用最笨的方法,解决问题 。
启发: 我逐个新建文件,然后复制粘贴(别问我为什么不直接把文件/文件夹拷到这个新项目里,我试过了,还是老错误,所以,这让我对visual studio的人性化产生了深深的怀疑,这辣鸡ide,真恶心,不是人用的。),没写好一个文件,我都逐个编译一次(也就生成解决方案),所以就在这时,我发现了问题。在我写完d3dutil.cpp后,对这个文件单独编译时,出错了!!!!!
曙光,就在我反复派查这个文件后,我发现了问题!!
当我删掉与这段相关的代码后,重新编译运行,程序跑起来了!!!!!!
反思 ,本以为是ide的问题,现在排查后,居然是自己代码写的有问题,可是问题出在哪呢?? 逻辑上没问题呀!!!
原凶
最后发现,只要我注释掉它,重新生成解决方案没有任何问题,如果不注释,就会出现刚刚那些错误。
后续,罪魁祸首已经找到,下面就是分析,我为什么写错了(我估计十有八九是我C++基础不牢)。今天就到这里,找到这个大BUG已经让人筋疲力尽了,明天再继续吧。
总结:
- 项目跑不起来,原来并不是ide的锅,而是我代码写的有问题
- 并不是ide配置文件更新的慢,可能并不是我添加现有项的姿势不对!而是自己代码写的有问题!
- 或许一个一个拷贝文件也可以
- 最好还是用上git版本管理机制,这样出问题时,也好对比自己改了哪,也避免了因为自己盲目自信而引发的血案!!!!
- 写一个文件编译一个文件,可以省很多不必要的浪费。
展望
如果再给我一次机会,我会用上git版本管理机制-–》出问题第一时间对比代码之间的区别----》然后十足确定自己没错后,再去怀疑Ide。