0

我正在尝试用 C++ 编写一个运行康威生命游戏的程序。我想我有我需要的一切,但我在编译时遇到了一些麻烦。

该程序由四个文件组成:gameoflife.h头文件,其中包含我的全局常量和函数声明,gameoflife.cpp定义函数,main.cpp使用函数,以及seeds.cpp包含要使用的预定义种子列表。

main.cpp当我去编译应用程序时,我似乎在gameoflife.cpp一个名为.currGengameoflife.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头文件中定义变量,而不仅仅是声明它。

在一个 .cpp 文件中必须有一个定义。.h 文件应该只声明它,使用extern.

这个答案更详细。

于 2012-04-04T07:38:33.430 回答