我正在尝试用C ++编写一个运行Conway生命游戏的程序。我想我拥有所需的一切,但我在编译方面遇到了一些麻烦。
该程序由四个文件组成:gameoflife.h
,一个包含我的全局常量和函数声明的头文件gameoflife.cpp
,它定义了函数main.cpp
,它使用了这些函数和seeds.cpp
,其中包含要使用的预定义种子列表。
当我去编译应用程序时,我似乎在main.cpp
和gameoflife.cpp
之间发生了一个名为currGen
的数组的重复符号冲突,该数组在gameoflife.h
中声明
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
我查看了Stack Overflow,但没有发现任何符合我问题的内容。任何帮助将不胜感激!
答案 0 :(得分:0)
您可能在头文件中定义变量currGen
,而不只是声明它。
在一个.cpp文件中只需要一个定义。 .h文件应该使用extern
声明它。