我是C++编程的新手,我正在尝试编写一个模拟Conway的生活游戏的程序。我几乎完成了,但是当我让每个函数都有自己的文件时,我一直收到这个链接器错误。
1>algorithm_change.obj : error LNK2005: "unsigned short height" (?height@@3GA) already defined in algorithm.obj发布于 2011-06-19 09:16:36
不看代码,您在任何头文件中都有一个全局unsigned short height;吗?如果是,则将其替换为extern unsigned short height;,并在包含特定标头的源文件中放置一个unsigned short height;。
发布于 2011-06-19 11:13:56
下面是一些评论:
1) lif.h中的array_length需要扩展
2)所有外部变量(width、height、ticks、count_array、change_array、error_check、algorithm_length、array_length)都需要在某个地方定义。
在您的代码中,您基本上已经告诉编译器,这些变量存在于某个地方,但实际上并没有将它们放在任何地方。在全局作用域中的一个.cpp文件中,您需要放入:
unsigned short int width;
unsigned short int height;
unsigned long int ticks;
unsigned short int count_array[10923][10923];
bool change_array[10923][10923];
int error_check;
unsigned long int algorithm_length;
unsigned long int array_length;除了没有关键字extern之外,它与lif.h中的内容完全相同。这实际上会创建变量,而不是现在没有具体实现的变量。
如果您进行了更改,我建议您的代码将被编译(使用gcc进行测试)。也就是说,您所看到的实际错误是没有意义的。
https://stackoverflow.com/questions/6399943
复制相似问题