首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++链接错误LNK2005

C++链接错误LNK2005
EN

Stack Overflow用户
提问于 2011-06-19 09:12:33
回答 2查看 301关注 0票数 0

我是C++编程的新手,我正在尝试编写一个模拟Conway的生活游戏的程序。我几乎完成了,但是当我让每个函数都有自己的文件时,我一直收到这个链接器错误。

代码语言:javascript
复制
1>algorithm_change.obj : error LNK2005: "unsigned short height" (?height@@3GA) already defined in algorithm.obj

我的代码在https://github.com/rupertsteel/Life/tree/master/Life

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-19 09:16:36

不看代码,您在任何文件中都有一个全局unsigned short height;吗?如果是,则将其替换为extern unsigned short height;,并在包含特定标头的源文件中放置一个unsigned short height;

票数 3
EN

Stack Overflow用户

发布于 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文件中,您需要放入:

代码语言:javascript
复制
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进行测试)。也就是说,您所看到的实际错误是没有意义的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6399943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档