Я собираю «Star Control Timewarp» из http://timewarp.sourceforge.net
Проблема в том, что игра требует объявления переменной в глобальной области видимости, которая уже заявлена файлом, который выглядит как стандартная математическая библиотека 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. *, Но только в качестве резервной копии его собственных функций. Пропуск строки, кажется, чтобы решить.
Что ж, это достаточно легко исправить, но пропуск «int round (double)» в utils.h приводит к множеству ошибок компиляции.
Кроме того, есть несколько случаев, когда функции объявляются в форме
функция void ();
Но, казалось бы, не указано в другом месте. Как и в функциях lock (), unlock () и deinit () класса «melee.h» класса VideoWindow, получая «неопределенную ошибку ссылки.
Задача ещё не решена.
Других решений пока нет …