首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在编译旧的MUD时修复collect2错误?

如何在编译旧的MUD时修复collect2错误?
EN

Stack Overflow用户
提问于 2021-07-17 23:53:46
回答 1查看 31关注 0票数 0

我试图在一台Ubuntu机器上运行make来编译一个RoT MUD,但我得到的最多的是一个collect2: error: ld returned 1 exit status

这是在终端出现错误之前出现的错误(以及许多其他类似的错误):

代码语言:javascript
复制
/usr/bin/ld: obj/wizlist.o:/home/lucas/Projects/R2b5/src/merc.h:3355: multiple definition of `bllmax'; obj/act_comm.o:/home/lucas/Projects/R2b5/src/merc.h:3355: first defined here

据我所知,这意味着头文件中有变量声明,并且使用static是一个简单的修复方法,但是,我还不能确定应该将该关键字放在代码中的什么位置来解决这个问题。以下是在meum.h中唯一提到bllmax的内容:

代码语言:javascript
复制
int bllmax, crbmax, crnmax, srpmax, mngmax;

Here是我正在尝试编译的程序。

EN

回答 1

Stack Overflow用户

发布于 2021-07-18 00:00:14

您需要了解声明和定义之间的区别。声明告诉编译器符号存在于某处,但可能不在此处。定义就是告诉编译器符号存在于此。

您显示的行(没有任何上下文)定义变量,这意味着它们将在包括头文件的每个源文件中定义。

它应该做的是声明变量,这可以通过将它们设为extern来完成

代码语言:javascript
复制
extern int bllmax, crbmax, crnmax, srpmax, mngmax;

然后在单个源文件中定义变量(没有extern)。

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

https://stackoverflow.com/questions/68422077

复制
相关文章

相似问题

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