首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pngfix.c:2151:对“通货膨胀2”的未定义引用

pngfix.c:2151:对“通货膨胀2”的未定义引用
EN

Stack Overflow用户
提问于 2013-11-02 02:50:26
回答 3查看 6.7K关注 0票数 3

我的平台:

Centos 6.X,Matplotlib-1.3.1,Numpy-1.8.0,Scipy 0.14.0.dev-bb608ba

我正在尝试安装libpng-1.6.6来显示.png文件,但是当尝试make时,它失败了,给出了下面的错误。

注意:我已经成功地预先安装了zlib (以及freetype2),这应该是错误所指向的。

代码语言:javascript
复制
pngfix.o: In function `zlib_reset':
/usr/lib/hue/libpng-1.6.6/contrib/tools/pngfix.c:2151: undefined reference to `inflateReset2'
collect2: ld returned 1 exit status
make[1]: *** [pngfix] Error 1
make[1]: Leaving directory `/usr/lib/hue/libpng-1.6.6'
make: *** [all] Error 2

请查看我的原始线程matplotlib-pyplot-does-not-show-output-no-error的链接。

我检查了2151的pngfix.c. c。它是zlib_reset函数,与rc设置有关。它是否指向更改某些matplotlibrc设置?

代码语言:javascript
复制
   2136 zlib_reset(struct zlib *zlib, int window_bits)
   2137    /* Reinitializes a zlib with a different window_bits */
   2138 {
   2139    assert(zlib->state >= 0); /* initialized by zlib_init */
   2140
   2141    zlib->z.next_in = Z_NULL;
   2142    zlib->z.avail_in = 0;
   2143    zlib->z.next_out = Z_NULL;
   2144    zlib->z.avail_out = 0;
   2145
   2146    zlib->window_bits = window_bits;
   2147    zlib->compressed_digits = 0;
   2148    zlib->uncompressed_digits = 0;
   2149
   2150    zlib->state = 0; /* initialized, once */
   2151    zlib->rc = inflateReset2(&zlib->z, 0);
   2152    if (zlib->rc != Z_OK)
   2153    {
   2154       zlib_message(zlib, 1/*unexpected*/);
   2155       return 0;
   2156    }
   2157
   2158    return 1;
   2159 }
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-11-02 06:57:50

解决了libpng安装的问题。

故障的原因显然是版本不兼容,部分原因可能是libpng-1.6.6不稳定,并且与以前安装的zlib-1.2.8有冲突。

我卸载了zlib-1.2.8并重新安装了较早但稳定的版本zlib-1.2.7,而不是libpng-1.6.6,下载并安装了libpng-1.5.9,libpng安装成功通过了测试!

这次没有zlib_reset - 'inflateReset2‘问题。不知道是否有更好的解决办法,但我似乎已经绕过了这个问题。因此,理想的兼容版本是zlib-1.2.7/libpng-1.5.9,而不是zlib-1.2.8/libpng-1.6.6,我一直在尝试!希望这能有所帮助。

票数 5
EN

Stack Overflow用户

发布于 2014-10-14 17:58:22

我也遇到了同样的问题(“未定义的‘通货膨胀参考2’”),并尝试了libpng-1.6.6和libpng-1.6.13结合zlib-1.2.8和zlib-1.2.7。什么都没用!

然后我发现了一个有用的帖子:https://stackoverflow.com/a/21345713

结果是libpng使用libtools编译和链接,而libtools默认只查找/usr/lib和/usr/include中的库和标头。因此,如果您已经在本地目录中手动安装了新版本的zlib,那么libtools在尝试构建libpng时不会找到它,并且错误的结果是对较新版本的zlib的libpng要求。

解决方案是简单地运行./configure,将LDFLAGS和CPPFLAGS设置为lib并包含安装新版本zlib的目录。就我而言:

代码语言:javascript
复制
LDFLAGS=-L$HOME/.local/lib CPPFLAGS=-I$HOME/.local/include ./configure --prefix=$HOME/.local

希望这能有所帮助!

票数 5
EN

Stack Overflow用户

发布于 2015-01-23 10:24:32

我会说弗洛是最好的。在centos 6.5为我工作。

更具体而言:

代码语言:javascript
复制
sudo LDFLAGS="-L/usr/local/lib" CPPFLAGS="-I/usr/local/include" ./configure
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19738464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档