[DEBUG]做项目切忌编译器版本混乱

蛋疼。今天装了XP双系统,重新装了VS2005,没有打SP1补丁。

 

以为都是2005嘛,运行不会有问题,哪晓得出现了一个非常诡异的运行错误,类似heap corruption的这种诡异,源头在第三方库CEGUI里,很难调试。

 

最后才恍然大悟我用的CEGUI是用打了SP1补丁的VS2005编译的,也许是这个问题,重新编译后就没问题了。

 

那么关于第三方库的问题,总结一下就是一定要保证编译环境相同。编译环境涉及很多方面,首先,编译器发布版本要相同,比如VS2005与VS2008就不 同。然后保证升级版本也要相同,比如VS2005与VS2005 SP1就不同。最后,编译设置也要相同,比如Debug,Release;/MT,/MD这些设置是否相同。

 

如果没有保证环境相同,运气好的话可能会没啥大问题,运气不好的话会提示你一些版本错误,运气最差的就是会导致一系列诡异的run time error,调试都找不到源头的。

 

最后附上一个VS各个发行版运行时库的比较:

http://msdn.microsoft.com/en-us/library/abx4dbyh%28VS.80%29.aspx

你可能感兴趣的:(C/C++)