根据提交给这里的bug报告,Gnash将不会使用最新的giflib进行编译。我想这意味着如果我使用一个旧的giflib,它会编译得很好。但是,我不知道如何做到这一点--我的包管理器(我在Manjaro上,可以访问AUR)在这里似乎没有帮助,而且我也不确定在这种情况下我需要修改什么或者做什么。
基本上,在我从Savannah获得Gnash的代码之后,我需要做什么/更改才能让它使用旧的giflib编译呢?
发布于 2014-07-24 23:19:56
如果您还没有看到它,就像雷德尔笔记一样,已经有了对有关错误报告的解决方法的请求的答复本身。
这当然是一个更快的解决方案,尽管在您的系统上拥有两个版本(或者仅仅是旧版本的、正在工作的) GifLib库没有什么问题。
要做到这一点,您可以使用在这里下载GifLib v4.2.3,它是一个旧版本,它的版本要比打破“咬牙切齿”编译的更改更早。
或者将它放在不同的目录中(您可能在/usr/local/lib中有v5.1吗?)并更改包含/链接器路径或就地替换v5.1文件,您根本不需要更改编译步骤。
我自己也尝试过同样的步骤,我无法复制你的错误。
除了sudo apt-get install-ing之外,还有许多包(它们不是造成您的麻烦的原因--而且在每一步我都被告知丢失了什么),这是我在进行新安装时的步骤:
$ 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-30 12:50:56
我刚查了一下你发的错误报告。还有一个解决办法:
作为解决办法,您可以更改libbase/GnashImageGif.cpp文件的123行,如下所示:
GifInput::~GifInput()
{
// Clean up allocated data.
- DGifCloseFile(_gif);
+ DGifCloseFile(_gif, 0);
} 编辑:根据我的经验,最好是实践应用补丁。如果您使用旧版本的giflib,您将错过更新版本中的任何更改。而这些变化大多是为了好,修复错误,优化等等。
https://stackoverflow.com/questions/24886517
复制相似问题