【C/C++】【FAQ】令人費解的編譯錯誤:error C2144: syntax error : 'double' should be preceded by ';' 和 error C3646:
今天程式設計莫名其妙的出現了以下兩個編譯錯誤:
1>e:\日常學習\plsa_nmf\plsa_nmf\sutil.h(10): error C3646: ';' : unknown override specifier
1>e:\日常學習\plsa_nmf\plsa_nmf\sutil.h(10): error C2144: syntax error : 'void' should be preceded by ';'
或者顯示成
1>e:\日常學習\plsa_nmf\plsa_nmf\query.cpp(17): error C3646: ';' : unknown override specifier
1>e:\日常學習\plsa_nmf\plsa_nmf\query.cpp(17): error C2144: syntax error : 'double' should be preceded by ';'
它指示檔案query.cpp的17行有問題,在至於後面的編譯錯誤其實是第一個編譯錯誤引起的。
在vs2010編譯環境下,不仔細看,很難發現輸出編譯資訊中的';'和';'的區別。
另外,就算看出來了,你在編譯器指示的檔案query.cpp中也找不到';',這個分號不知道是在哪裡出現的,通過檢視編譯資訊,我們
可知,這個錯誤是在編譯query.cpp時出現的,其實,最簡單的解決方法就是,對整個專案進行查詢,看看那些地方出現了';',這樣
可以很快解決問題。
當你沒有遇到過或者不記得這種錯誤的時候,估計你會苦惱一會兒,其實類似這種錯誤,都是因為字元的格式不對引起的。以後程式設計要
多加註意。另外,不要太相信編譯器,編譯器上的提示僅僅可以作為參考,像這個問題上,編譯器指示的檔案就不是問題出現的那個檔案,
其實問題出現的那個檔案是在query.h中。