libpng16.so:对‘inflateValidate’未定义引用

libpng16.so:对‘inflateValidate’未定义引用

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

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

我检查了环境变量,发现它们设置正常。nm工具显示inflateValidate位于 zlib 库导出中。我希望我的解决方案(见下文)能够帮助某人并节省他的时间。

答案1

解决方案是添加LDDFLAGS./configure

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

这解决了这个问题。

答案2

在 64 位机器上的 Lubuntu 16-04 上运行时,我的解决方案是指定库的路径zlib

首先,建zlib库:

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

然后,libpng通过使用以下选项指定依赖项来构建库--with-zlib-prefix

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

答案3

我的解决方案是通过配置 CPPFLAGS 和 LDFLAGS 来解决的。就我而言:

CPPFLAGS=/usr/zlib/include LDFLAGS=/usr/zlib/lib

./configure --prefix=<path_optional> CPPFLAGS=/usr/zlib/include LDFLAGS=/usr/zlib/lib

制作 制作安装 制作清理

相关内容