2012-04-04 15 views
0

私はConwayのGame of Lifeを実行するC++プログラムを作成しようとしています。私は必要なものはすべて持っていると思っていますが、私はコンパイルにいくつか問題があります。Xcodeエラー:コマンド/開発者/ usr/bin/clang ++が重複したシンボルのために終了コード1で失敗しました

プログラムは4つのファイルで構成されています。事前に定義された種のリストが含まれている機能を使用する関数を定義していますgameoflife.h、私のグローバル定数と関数の宣言が含まれているヘッダファイル、gameoflife.cppmain.cpp、およびseeds.cpp、使用する。私は、アプリケーションをコンパイルするために行くとき

、私はgameoflife.hで宣言されてcurrGenと呼ばれる配列を超えるmain.cppgameoflife.cpp間の重複シンボルの衝突を持っているようです。

main.cppおよびgameoflife.cppの両方には、gameoflife.hが含まれています。これは、グローバル定数および関数宣言にアクセスするためにはもちろん必要です。私が受け取る

正確なエラーは以下の通りです:

duplicate symbol _currGen in /(same_path)/ConwaysGameOfLife.build/Objects-normal/ 
x86_64/gameoflife.o and 
/(same_path)/ConwaysGameOfLife.build/Objects-normal/x86_64/main.o 
for architecture x86_64 
Command /Developer/usr/bin/clang++ failed with exit code 1 

私はスタックオーバーフローに周りを見回しましたが、私の問題に一致するものを発見していません。どんな助けでも大歓迎です!

答えて

0

おそらく、宣言するだけでなく、変数currGenをヘッダーファイルに定義しています。

1つの.cppファイルに、正確に1つの定義が必要です。 .hファイルは、それを宣言するだけで、externを使用します。

This answer goes into much more detail.

関連する問題