由於當前在往乙個比較大的專案中新增檔案,檔案又有相似性所以採取了複製的方式,最後出現了乙個大疏漏。
在總的.cpp檔案中呼叫新檔案中的函式,在包含了新檔案的.h標頭檔案的情況下仍然說沒有找到識別符號,在網上找了很多方法,其中比較玄學的一種是
在vs2012
下進行vc++
除錯時,出現這樣一種錯誤:
error c2065
:未宣告的識別符號,當時感覺十分怪異,為什麼說怪異呢?因為如果在
.cpp
中未引入相關
.h檔案出現這樣的錯誤很正常,但是現在是已經引入了相關的標頭檔案,卻還是出現了諸如
error c2065
、error c2087
、error c2133...的錯誤。
最終解決辦法是修改了一下其標頭檔案的順序,原先
copy
時「#include "stdafx.h"
」在幾個標頭檔案的最後位置,將其提前到最前位置,問題得到解決。原來不僅要引入相關的標頭檔案,其位置也要放正確
。當然預編譯標頭檔案應該放在最前位置吧,不過在原先的工程中放在最後卻沒有錯誤,
怪哉。
但是,該方法並不頂用 換了位置之後 並列的另外乙個檔案的標頭檔案裡的定義找不到了
後來發現其根本問題出在,c++的條件編譯機制上,為了防止標頭檔案的重複編譯重複定義,所以總檔案包含的幾個標頭檔案前都新增了條件編譯,類似於
#ifndef xx_h
#define xx_h
......接下來是具體定義
#endif
而我有兩檔案的編譯條件是重複的,所以出現了更換位置有變化的現象。
網上目前還沒有這樣的說明,特此一記。
關於錯誤「未宣告的識別符號」
在vs2012下進行vc 除錯時,出現這樣一種錯誤 error c2065 未宣告的識別符號,當時感覺十分怪異,為什麼說怪異呢?因為如果在.cpp中未引入相關.h檔案出現這樣的錯誤很正常,但是現在是已經引入了相關的標頭檔案,卻還是出現了諸如error c2065 error c2087 error ...
error C2065 未宣告的識別符號錯誤
error c2065 未宣告的識別符號錯誤 在vs2010下進行vc 除錯時,出現這樣一種錯誤 error c2065 未宣告的識別符號,當時感覺十分怪異,為什麼說怪異呢?因為如果在.cpp中未引入相關.件出現這樣的錯誤很正常,但是現在是已經引入了相關的標頭檔案,卻還是出現了諸如error c20...
Qt裡頭檔案包含的類的宣告
1 qt begin namespace 例如 ifndef mainwindow h define mainwindow h include qt begin namespaceclass qaction class qmenu class qtextedit qt end namespace在標...