error C2061: 語法錯誤: 識別符號“MonsterSprite”
[b][i]本文為firedragonpzy原創,轉載務必在明顯處註明:
轉載自【Softeware MyZone】原文連結: http://www.firedragonpzy.com.cn/index.php/archives/690[/i][/b]
轉載自【Softeware MyZone】原文連結: http://www.firedragonpzy.com.cn/index.php/archives/690[/i][/b]
今天遇到了一個扯淡的錯誤,搞了半天時間,最終同事給解決了,錯誤資訊如下:
1>e:\ios\cocos2d-1.0.1-x-0.11.0\purplebufferfly\classes\drawfireline.h(40): error C2061: 語法錯誤: 識別符號“MonsterSprite”
1>e:\ios\cocos2d-1.0.1-x-0.11.0\purplebufferfly\classes\drawfireline.h(50): error C2143: 語法錯誤 : 缺少“;”(在“*”的前面)
1>e:\ios\cocos2d-1.0.1-x-0.11.0\purplebufferfly\classes\drawfireline.h(50): error C4430: 缺少型別說明符 - 假定為 int。注意: C++ 不支援預設 int
1>e:\ios\cocos2d-1.0.1-x-0.11.0\purplebufferfly\classes\drawfireline.h(50): error C4430: 缺少型別說明符 - 假定為 int。注意: C++ 不支援預設 int
1>e:\ios\cocos2d-1.0.1-x-0.11.0\purplebufferfly\classes\firescene.h(16): error C2143: 語法錯誤 : 缺少“;”(在“*”的前面)
1>e:\ios\cocos2d-1.0.1-x-0.11.0\purplebufferfly\classes\firescene.h(16): error C4430: 缺少型別說明符 - 假定為 int。注意: C++ 不支援預設 int
1>e:\ios\cocos2d-1.0.1-x-0.11.0\purplebufferfly\classes\firescene.h(16): error C4430: 缺少型別說明符 - 假定為 int。注意: C++ 不支援預設 int
1>e:\ios\cocos2d-1.0.1-x-0.11.0\purplebufferfly\classes\tigermountainscene.cpp(219): warning C4305: “引數”: 從“double”到“cocos2d::ccTime”截斷
這樣子看來,是沒有定義MonsterSprite,但是我確實定義過啊。下面,給大家詳細解釋一下。
我程式是這樣子的,MonsterSprite是自己封裝的一個精靈類,而在一個自定義的層(DrawLine)中使用這個自定義的精靈,在DrawLine中#include "MonsterSprite.h"進來,然後使用自定義精靈類,最終在自定義的層中使用自定義的精靈,一切看起來是這麼的自然,這麼的合理,可是為什麼偏偏報錯了。
從C2061: 語法錯誤: 識別符號“MonsterSprite”,看起來就是沒有定義MonsterSprite,而是把MonsterSprite看成了識別符號,一般大家自己定義的變數什麼的大家習慣稱之為識別符號,但是我明明定義了,為什麼還說沒有呢。原因是編譯就沒有通過,我這次犯的錯是重複包含,即A包含了B,B又包含了A,我的還稍微複雜點,在某個檔案的標頭檔案中包含了某個標頭檔案,一層嵌一層,導致A包含了B,B又包含了A。希望大家以後注意,不要犯我這樣的低階錯誤。
下面貼出解決方案:
在DrawLine標頭檔案中先宣告一下類:class MonsterSprite;然後在DrawLine.cpp檔案中#include "MonsterSprite.h",反之即可。
恩,不早了,今天就先到這裡了,希望這個對大家有幫助,也不浪費我這麼多時間寫……
呼呼……
相關文章
- javascript基礎語法——變數和識別符號JavaScript變數符號
- shell報錯:未預期的符號***附近有語法錯誤符號
- java基本無法-識別符號Java符號
- C語言-識別符號命名C語言符號
- 2.3Python基礎語法(1):識別符號Python符號
- JavaScript 識別符號JavaScript符號
- 1413: C語言合法識別符號C語言符號
- JAVA基礎語法——識別符號、修飾符、關鍵字(個人整理總結)Java符號
- markdown特殊符號語法符號
- 命令識別符號(轉)符號
- 關於VS報無法解析外部符號的錯誤符號
- 錯誤 1 error LNK2019: 無法解析的外部符號 _WinMain@16,該符號在函式 ___tmainCRTStartup 中被引用Error符號AI函式
- C語言合法識別符號 hd 2024C語言符號
- HDU 2024 C語言合法識別符號C語言符號
- python的識別符號Python符號
- 06:合法 C 識別符號符號
- 《Effective Go》--空白識別符號Go符號
- oracle 識別符號規範Oracle符號
- aix 系統識別符號AI符號
- Java資料型別、識別符號Java資料型別符號
- Go語言的識別符號、關鍵字、字面量、型別Go符號型別
- c++基礎知識(九)連線時出現錯誤 error LNK2001: 無法解析的外部符號(轉)C++Error符號
- 識別符號與關鍵字符號
- Oracle 12.2 長識別符號Oracle符號
- 標準HTML識別符號 (轉)HTML符號
- 錯別字和標點符號符號
- GO語言————4.1 檔名、關鍵字與識別符號Go符號
- URI(統一資源識別符號)符號
- SCSS &父選擇器識別符號CSS符號
- Windows安全識別符號(SID)概述Windows符號
- Hibernate識別符號生成器符號
- C++ error C2143: 語法錯誤: 缺少“;”(在“*”的前面)C++Error
- error C2059: 語法錯誤:“::” error C2589: “(”:“::”右邊的非法標記Error
- PLSQL Language Reference-PL/SQL語言基礎-詞彙單元-分隔符、識別符號SQL符號
- 英語中各種符號的讀法符號
- 單位符號的英語說法 -引用符號
- JAVA-識別符號、變數、資料型別Java符號變數資料型別
- C++ 提示未宣告的識別符號C++符號