0

ConwayのGameofLifeを実行するC++でプログラムを作成しようとしています。必要なものはすべて揃っていると思いますが、コンパイルに問題があります。

プログラムは4つのファイルで構成されています。 gameoflife.h、グローバル定数と関数宣言を含むヘッダーファイル、gameoflife.cpp関数を定義する、、関数main.cppを使用する、、および使用するseeds.cpp定義済みシードのリストを含む。

アプリケーションをコンパイルしようとすると、で宣言されていると呼ばれる配列間main.cppおよび配列上で重複するシンボルが衝突しているようです。gameoflife.cppcurrGengameoflife.h

main.cppgameoflife.cppincludeの両方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

Stack Overflowを調べましたが、問題に一致するものは見つかりませんでした。どんな助けでも大歓迎です!

4

1 に答える 1

0

currGen変数を宣言するだけでなく、ヘッダーファイルで変数を定義している可能性があります。

1つの.cppファイルに1つの定義が存在する必要があります。.hファイルは、を使用してそれを宣言する必要がありますextern

この答えはさらに詳細になります。

于 2012-04-04T07:38:33.430 に答える