2

根据此处提交的错误报告,Gnash 不会使用最新的 giflib 进行编译。我假设这意味着如果我使用较旧的 giflib,它会编译得很好。不过,我不确定如何执行此操作 - 我的包管理器(我在 Manjaro 上,并且可以访问 AUR)在这里似乎没有帮助,而且我不确定我需要修改或做什么无论如何,在这种情况下。

基本上,在我从 Savannah 获得 Gnash 的代码后,我需要做什么/更改才能使用较旧的 giflib 进行编译?

4

2 回答 2

3

好吧,我刚刚检查了您发布的错误报告。并且有一个解决方法:

作为一种解决方法,您可以更改libbase/GnashImageGif.cpp文件的第123行,如下所示:

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

编辑:根据我的经验,应用补丁是更好的做法。如果您使用旧版本的 giflib,您将错过在新版本中所做的任何更改。大多数情况下,这些更改都是好的,错误修复,优化等..

于 2014-07-30T12:50:56.160 回答
3

如果您还没有看到它,正如Raydel 所指出的,我们已经回复了您对错误报告本身的解决方法的请求。

这当然是更快的解决方案,尽管在您的系统上拥有 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

我建议您重新开始,因为这些步骤为我解决了所有问题 - 无需手动移动文件、指定编译器/链接器选项或编辑似乎给您带来问题的 makefile。

于 2014-07-24T23:19:56.230 回答