2013-05-02 175 views
10

我有以下的頭文件:未知類型名稱類

https://gist.github.com/wemakeweb/5501443 和編譯器始終報告「未知類型名稱類別」。我已經包括向前宣言,打破包括,我認爲我必須在哪裏。我忘了什麼?

編輯:我把它們都放在一個頭文件,編譯器仍然報告「預計,後頂層聲明符」

https://gist.github.com/wemakeweb/5583500

編輯2 現在即時得到鏈接錯誤。 「爲建築x86_64的未定義符號」

解決,問題是

  1. 通知包括
  2. main.c中代替的main.cpp
  3. 實際的代碼是一個靜態庫這是不鏈接正確
+2

關於哪一行?你正在使用什麼編譯器,以及什麼編譯選項? – 2013-05-15 12:59:07

+1

現在你還沒有顯示你收到的ilnker錯誤。如果你想讓人們幫助你解決問題,你必須更加努力。 – Roddy 2013-05-15 13:38:18

+1

是的,你是對的,我發佈的鏈接錯誤只作爲評論roddys回答 – 2013-05-15 13:42:32

回答

17

這個錯誤? error: unknown type name ‘class’

您可能將它編譯爲C而不是C++。

確保源文件的擴展名爲.cpp,並且正確設置了任何相關的編譯器標誌。 (如果你包含精確的錯誤信息和行號,這會有所幫助。不要嘗試重新輸入,只需剪切+粘貼。)

+1

我得到的頭文件中的第一個錯誤是「預期;頂級聲明後」 – 2013-05-15 12:25:23

+2

@SepOSep是的,但什麼行號和文件?頭文件沒有問題,所以也要顯示試圖包含它的cpp源文件。你有* * .cpp文件,不是嗎? – Roddy 2013-05-15 12:34:51

+1

是的,它是一個main.c文件,我現在將其更改爲main.cpp。我現在正在對付鏈接器錯誤「架構x86_64的未定義符號」。 – 2013-05-15 13:23:34

6

Feld.hFigur.h之間至少有一個循環包含依賴關係。如果您還包含標題,則前向聲明不起作用。只需刪除包含。

+1

它不工作我編輯我的問題 – 2013-05-15 12:06:10