Компиляция Gnash из исходного кода не удалась из-за обновления giflib — альтернативы?

На основании поданного отчета об ошибке Вот, Gnash не будет компилироваться с последним giflib. Я предполагаю, что это означает, что, если я использую более старый giflib, он будет хорошо компилироваться. Я не уверен, как это сделать — мой менеджер пакетов (я нахожусь на Manjaro, и у меня есть доступ к AUR), похоже, здесь не помогает, и я не уверен, что мне придется изменить или сделать в любом случае в любом случае.

По сути, после того, как я получу код для Gnash от Savannah, что мне нужно будет сделать / изменить, чтобы он компилировался с использованием старого giflib?

1

Решение

Если вы еще не видели, как Рэйдел отмечает там было ответ на ваш запрос об обходе ошибки сам.

Это, безусловно, более быстрое решение, хотя нет ничего плохого в том, что в вашей системе есть две (или просто старая, работающая) версия библиотеки GifLib.

Для этого вы можете скачать GifLib v4.2.3 здесь, версия старше, чем изменение, которое нарушает компиляцию gnash.

Либо поместите его в другой каталог (у вас, вероятно, v5.1 в /usr/local/lib?) и измените пути включения / компоновщика или замените файлы v5.1 на месте, и вам вообще не нужно будет менять этапы компиляции.


Пробуя те же самые шаги самостоятельно, я не смог повторить вашу ошибку.

Исключая sudo apt-get install— из-за многочисленных пакетов (которые не являются причиной ваших проблем — и на каждом шагу мне говорили, что именно не хватает), это были мои шаги на новой установке:

$ git clone git://git.sv.gnu.org/gnash.git
$ curl http://sourceforge.net/projects/giflib/files/giflib-4.x/giflib-4.2.3.tar.bz2/download
$ tar xvjf giflib-4.2.3.tar.bz2
$ cd giflib-4.2.3
$ ./configure
$ sudo make
$ sudo make install
$ cd ../gnash
$ ./autogen.sh
$ ./configure.ac
$ sudo make
$ sudo make install

Я рекомендую начать все заново, так как эти шаги обо мне позаботились обо всем — без какого-либо ручного перемещения файлов, указания параметров компилятора / компоновщика или редактирования make-файлов, которые, кажется, вызывают у вас проблемы.

3

Другие решения

Ну, я только что проверил сообщение об ошибке Вы отправили. И есть обходной путь:

В качестве обходного пути вы можете изменить строку 123 из libbase / GnashImageGif.cpp файл следующим образом:

GifInput::~GifInput()
{
// Clean up allocated data.
- DGifCloseFile(_gif);
+ DGifCloseFile(_gif, 0);
}

РЕДАКТИРОВАТЬ: Согласно моему опыту, лучше применять патч. Если вы используете более старую версию giflib, вы пропустите любые изменения, сделанные в более новой версии. И эти изменения в большинстве случаев насовсем, исправления ошибок, оптимизация и т. Д.

3

По вопросам рекламы [email protected]