我正在从http://timewarp.sourceforge.net
编译“Star Control Timewarp”
问题是游戏需要在全局范围内声明一个变量,该变量已经被一个似乎是标准 linux 数学库的文件声明.
我冒昧地或指定了我在这里找到的其他一些错误。
这个问题的范围涉及 global_scope/new_declaration/ambiguation 问题。但我为任何可能了解游戏或如何处理它的人添加了一些额外内容。
.../timewarp/src/twgui/utils.h: At global scope:
.../timewarp/src/twgui/utils.h:166: error: new declaration ‘int round(double)’
/usr/include/bits/mathcalls.h:310: error: ambiguates old declaration ‘double round(double)’
Timewarp 还要求几个类在使用表单时更正其函数声明
class something
{
something::function()
};
代替
class something
{
something::function()
};
Timewarp 还请求 ,这显然不是 Allegro 4.2.* 提供的,而只是作为其自身功能的备份。省略该行似乎可以解决。
好吧,这很容易修复,但是从 utils.h 中省略 'int round(double)' 会产生大量编译错误。此外,有几种情况下,函数以形式声明
无效函数();
但似乎没有在其他地方指定。与“melee.h”的 videowindow 类的 lock()、unlock() 和 deinit() 函数一样,会产生“未定义的引用错误”。