Posted on 2011-02-23 10:10
乱78糟 阅读(3081)
评论(5) 编辑 收藏 引用 所属分类:
C语言派系
最近忙于一个跨平台项目,在用VS2005编译代码时候无意发现,已经提交给微软。提交之前没有详细google,不知道有没有人发现,也不知道微软有没有针对这个问题的解决办法,C++博客大牛众多,小菜斗胆发到首页希望大家指正。
这里给出BUG的描述和解决办法。
测试系统和VS2005版本:
1)WIN7 + VS2005 8.0.50727.867(vsvista.050727-8600)
2)XP sp2 + VS2005 8.0.50727.42(RTM.050727-4200)
BUG描述:
编译源码/TP和/TC切换时发生,发生概率100%。
原因很简单,编译时候IDE显示给程序员的参数和提供给编译器的编译参数不一致。
该BUG不算严重,但是极容易让新手困惑。
BUG重现步骤:
1)新建一个console空工程,添加一个test.cpp,敲入c++代码,如定义一个类。
2)打开工程属性页,在【C/C++】-【Advanced】-【Compile As】,将默认的/TP选择成/TC,然后再将/TC选择为/TP,编译Debug版本,编译通过。
3)选择编译为Release,编译失败,从错误可以看出将c++代码按照c来编译了。打开Release工程属性,【Complie As】为/TP,实际编译器按照/TC编译。
解决办法:
如果已经手动在IDE里切换过/TP和/TC,那么Release也需要手动切换一次,否则,无法正常编译。