错误:'环礁'的冲突类型

时间:2016-01-30 15:24:55

标签: c debugging import server

我正在尝试调试,因此我可以托管游戏服务器,这是我的下一个错误。我只在Linux上工作了很短的一段时间,不知道从哪里开始。

这是我正在使用的错误:

null

3 个答案:

答案 0 :(得分:3)

atoll是一个标准的C库函数,在<stdlib.h>中声明,在C99中引入。

其声明是:

long long int atoll(const char *nptr);

显然,您正在编译的软件有一个名为tool.h的头文件,声明:

unsigned long long atoll(char *string);

该声明不正确且不必要。如果底层实现不支持它,那么明确声明{em}可能是有意义的,但它至少应该被正确声明 - 并且它不应该被声明如果atoll已经宣布它,那就完全没有了。

您正在构建的软件无论是错误还是配置错误。如果您可以识别该软件(它是一个开源软件包吗?),我们可以看看它。或者您可以联系作者并指出这个问题。

根据一些评论,您很可能正在尝试构建Astonia。我自己下载了源代码,并且它报告了您的问题(虽然使用不同的行号;也许您没有构建最新版本)。源声明但未定义<stdlib.h>函数。评论声明应该解决这个具体问题,尽管可能还有其他问题。你应该contact the author

答案 1 :(得分:1)

atoll()是一个C ++标准库(stdlib)转换函数。

看起来你在两个不同的头文件中遇到了两个不同的定义。为什么server.c使用#include#引入两个冲突的标头.h文件链?

许多C和C ++开源软件包都有./configure命令。如果你有一个命令,你应该重新运行吗?

答案 2 :(得分:0)

我将假设我知道你要构建什么,因为我自己经历了这个并且看到了完全相同的错误。问题是,这段代码是在大约十五年前在32位Linux上构建的,而且这种冲突并不存在。现在你(我的另一个假设)尝试在64位Linux上构建它并且存在冲突。我没有C通过改变代码来解决问题,但是,如果你尝试在32位版本的linux上构建它,它将会起作用。

让我说如果你在64位系统上解决这个问题的路径,它将不是你最后的麻烦。当在构建过程中遇到32位MySQL片段并且在64位系统上不存在时,你将打到另一面墙。