libpng16.so:对“inflateValidate”的未定义引用

我只是报告。 我试图在Amazon Linux上构buildlibpng(基于Red Hat)时遇到了一个问题。 但我有以下错误:

libtool: link: gcc -g -O2 -o .libs/pngfix contrib/tools/pngfix.o ./.libs/libpng16.so -lz -lm ./.libs/libpng16.so: undefined reference to `inflateValidate' collect2: error: ld returned 1 exit status 

我检查了环境variables,他们正常设置。 nm工具显示inflateValidate是在zlib库中导出的。 我希望我的解决scheme(见下文)能帮助别人,节省时间。

解决方法是将LDDFLAGS添加到./configure

 ./configure --prefix=/usr LDFLAGS="-L/usr/lib -lz" 

这解决了这个问题。

运行在64位的Lubuntu 16-04上,我的解决scheme是指定zlib库的path。

首先,build立zlib库:

 ./configure \ --prefix=/home/stephane/programs/install make make install make clean 

然后,通过使用--with-zlib-prefix选项指定依赖关系来构buildlibpng库:

 ./configure \ --prefix=/home/stephane/programs/install \ --with-zlib-prefix=/home/stephane/programs/install make make install make clean