最近忙于一個(gè)跨平臺(tái)項(xiàng)目,在用VS2005編譯代碼時(shí)候無(wú)意發(fā)現(xiàn),已經(jīng)提交給微軟。提交之前沒(méi)有詳細(xì)google,不知道有沒(méi)有人發(fā)現(xiàn),也不知道微軟有沒(méi)有針對(duì)這個(gè)問(wèn)題的解決辦法,C++博客大牛眾多,小菜斗膽發(fā)到首頁(yè)希望大家指正。
這里給出BUG的描述和解決辦法。
測(cè)試系統(tǒng)和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切換時(shí)發(fā)生,發(fā)生概率100%。
原因很簡(jiǎn)單,編譯時(shí)候IDE顯示給程序員的參數(shù)和提供給編譯器的編譯參數(shù)不一致。
該BUG不算嚴(yán)重,但是極容易讓新手困惑。
BUG重現(xiàn)步驟:
1)新建一個(gè)console空工程,添加一個(gè)test.cpp,敲入c++代碼,如定義一個(gè)類(lèi)。
2)打開(kāi)工程屬性頁(yè),在【C/C++】-【Advanced】-【Compile As】,將默認(rèn)的/TP選擇成/TC,然后再將/TC選擇為/TP,編譯Debug版本,編譯通過(guò)。
3)選擇編譯為Release,編譯失敗,從錯(cuò)誤可以看出將c++代碼按照c來(lái)編譯了。打開(kāi)Release工程屬性,【Complie As】為/TP,實(shí)際編譯器按照/TC編譯。
解決辦法:
如果已經(jīng)手動(dòng)在IDE里切換過(guò)/TP和/TC,那么Release也需要手動(dòng)切換一次,否則,無(wú)法正常編譯。