Posted on 2011-02-23 10:10
亂78糟 閱讀(3116)
評論(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也需要手動切換一次,否則,無法正常編譯。