已經包含標頭檔案仍然 出現,錯誤「未宣告的識別符號」

2021-08-22 13:05:22 字數 837 閱讀 6125

由於當前在往乙個比較大的專案中新增檔案,檔案又有相似性所以採取了複製的方式,最後出現了乙個大疏漏。

在總的.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在標...