由于giflib更新,从源代码编译Gnash失败了 - 替代方案?

时间:2014-07-22 11:45:13

标签: c++ compilation archlinux gnash

根据提交的here错误报告,Gnash不会使用最新的giflib进行编译。我认为这意味着如果我使用旧的giflib,它就可以编译得很好。我不知道该如何做到这一点 - 我的包经理(我在Manjaro,并且可以访问AUR)似乎没有帮助,我不确定无论如何,我必须修改或做这件事。

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

2 个答案:

答案 0 :(得分:3)

如果您还没有看到它,Raydel notes本身就有a reply to your request for a workaround on the bug report

这肯定是更快的解决方案,尽管在您的系统上安装两个版本(或只是较旧的,工作版)的GifLib库没有任何问题。

要做到这一点,你可以download GifLib v4.2.3 here,一个比破坏gnash编译的更改更早的版本。

要么将它放在不同的目录中(你可能在/usr/local/lib中有v5.1?)并更改包含/链接器路径或者就地替换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,这似乎导致你的问题。

答案 1 :(得分:3)

好吧,我刚检查了你发布的bug report。还有一个解决方法:

  

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

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

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