2011-11-04 152 views
0

我想將我的類頭包含在main和我的類實現中。奇怪的是main找到了完美的頭文件,但是通過類實現,我得到了「沒有這樣的文件或目錄」。爲什麼這會發生?我的意思是我的項目中的一個文件能夠完美地找到一個頭文件,但同一個項目中的另一個文件找不到相同的頭文件可能有什麼原因。在C++中包含文件

我使用的代碼塊10.05

感謝

+2

你在做'#include「blah.h」'或'#include '嗎?源文件是否在不同的目錄中? –

+0

你可以粘貼一個(可能與項目敏感的東西審查)粗略的項目結構的想法?你使用的是什麼構建系統,以及發送給編譯器的選項(如-I)? –

+1

你不應該包含實現。包括標題,就是這樣。實現文件仍然會被編譯。 – Pubby

回答

0

確保您的目錄配置正確的,只要實現包含在項目應正確編譯。同樣如Fred Larson所說,確保在文件周圍放置「引號」,而不是括號括起來,否則會在標準目錄中查找找不到文件的標準目錄。

+0

我決定放棄Codeblocks並將其移到Xcode上,並在其中找到頭文件。謝謝你的回答! – user1017485

1

在編譯類實現時,編譯器爲標題搜索的路徑列表必須不同。

類實現和主文件在同一個目錄下嗎?如果沒有,那麼問題可能是,在大多數編譯器中,搜索到的第一個路徑是包含正在編譯的文件的目錄*,並且頭文件與主文件位於同一個文件中,但不是類實現文件。

我不知道你的編譯器是否提供了它,但有些模式有一個詳細模式,它將列出搜索標題的路徑。如果我上面的評論沒有幫助,那麼也許會。

  • 假設您使用引號包含文件。在你的包含中使用引號和尖括號的唯一區別在於,使用引號表示在包含所有已列出的其他路徑之前搜索包含.cpp文件的目錄(在命令行上,在環境變量中,在牽連中系統包括路徑)。