2012-02-08 13 views
2

私はファイルSpreadSheetCell.hとSpreadSheetCell.cppを持っています。
SpreadSheetCell.hを含む別のファイルSpreadSheet.cppがあります。この場合、SpreadSheetCell:SpreadSheetCell()などの未定義参照のようなエラーが表示されます。
代わりにSpreadSheetCell.cppをインクルードしようとすると行った。 cppファイルではなくヘッダファイルをインクルードするのは一般的ではありませんか?私はおそらく何が間違っていることができますか?.cppファイルのヘッダーファイルを含む

+2

あなたは何をすることができますか、それはソースルークがないので、すべての視点です。 – user505160

+1

あなたが間違っていることは、十分な詳細を与えずに質問していることです。 –

答えて

3

これはリンクエラーであり、コンパイル時にの定義を持つソースファイルを含めていないことを意味します。

使用しているコマンドラインにはおそらくSpreadSheetCell.cppがありません。

g++ -o myBinary SpreadSheet.cpp SpreadSheetCell.cpp [...more files?] 
+0

Aww ..はい私はコンパイル中にSpreadSheetCell.cppをインクルードするのを忘れていました。ありがとう –

1

ソースコードを含めることは決してお勧めできません。常にヘッダーファイルのみをインクルードします。

あなたのファイルを見ることができませんが、私はSPreadSheetCell.hにファイル(SpreadSheet.hかもしれませんか?)が含まれており、循環依存が存在すると思います。

最良の方法は、(cppファイルとhファイルの両方に含まれる)ファイルのグラフを作成することです。どこかに「円」がある場合は、問題が見つかりました。その場合は、サークルが壊れたり、ファイルを小さなファイルに分割したり(サークルを削除するため)、1つのリンクを削除する必要があります。

0

(「円」私は再び含めたCを含むBを含むファイルを例えば意味。と)あなたのコードが表示されない場合は、お使いのSpreadSheetCell.cppはの#include「SpreadSheetCell.h」を持っていることを確認あなたのコンパイルコマンド!

関連する問題