1. 程式人生 > >【C/C++】【FAQ】令人費解的編譯錯誤:error C2144: syntax error : 'double' should be preceded by ';' 和 error C3646:

【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中。