一个空格符引发的三天惨淡BUG案

近来发生一段怪事,曾经毫无问题的工程,因为崩过一次之后,各种崩溃。编译没问题,运行没问题,但运行之后运行部分功能出现崩或者挂。显示出的错误千奇百怪,虽然大多是那几种,但各具概率,各有不同,不会固定的报错。

         同样的工程在其他电脑毫无问题,于是出现了第一次解决方案:删除工程,从SVN重新更新,问题解决。以为没问题了,但一切却是暂时的,坚持了半天,再一次崩之后,同样问题再次复现。直到江郎才尽也没找到解决方法:各种变量重新设置,修复甚至重装Microsoft Visual Studio 2010,但一切无济于事。各种消耗,心里面一直暗想,实在不行就使出最后一招——终极大招,重装windows 系统。

         在重装之前,想再做一次最后的挣扎,断点、堆栈跟进。发现一个提示找不到xxx_d.lib,搜索发现该文件存在,并且设置好了环境变量,最终想到一个老问题,是否因为空格的关系:Program Files,之间存在一个空格,貌似曾经吃过相关方面的亏。于是将第三方库重新放置与某盘根目录(其原因就是不在含空格),重置电脑系统变量目录,编译,依然报错,想起部分系统变量设置后需要重启电脑,于是重启,相关问题解决。

         总结:对于开发类工具,由于中外文化差异,字符集差异,关于第三方库或者开发插件(只要是涉及需要设置系统环境变量的)千万别放在含有中文字符空格的目录。

         其实这也说明Microsoft Visual Studio 2010存在一定的局限性,bug,某些时候能识别,就像之前,一切好端端的,但一经出错,便变得六亲不认,相关错误给你展现的一览无余。 
    而且发现一个问题,某些涉及计算机系统变量的,在Microsoft Visual Studio 2010中会相互影响,比如在A工程中设置后,可能会缓存到B、C工程。


原文地址:https://www.cnblogs.com/SunkingYang/p/11049174.html