在 OSX Lion 上构建 ImageMagick 并且无法链接 libpng

在 OSX Lion 上构建 ImageMagick 并且无法链接 libpng

我正在尝试在 OSX Lion 上构建支持 libpng 的 ImageMagick 6.8.0-5。我只是使用标准的 ./configure make make install 过程。

当我不引用 libpng 时,我可以成功编译。

./configure --with-png=no
make

但是,当我尝试添加 libpng 支持时,make 出现错误。(libpng-1.5.13)

./configure --with-png=yes
make

该错误似乎是链接器错误。

/usr/bin/nm: no name list
ld: warning: cannot export hidden symbol _SyncImagePixelCache from magick/.libs/magick_libMagickCore_la-cache.o
ld: warning: cannot export hidden symbol _ResetQuantumState from magick/.libs/magick_libMagickCore_la-quantum.o
Undefined symbols for architecture x86_64:
  "_png_set_check_for_invalid_index", referenced from:
      _WriteOnePNGImage in magick_libMagickCore_la-png.o
      _ReadOnePNGImage in magick_libMagickCore_la-png.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
make[1]: *** [magick/libMagickCore.la] Error 1
make: *** [all] Error 2

我没有更改任何其他配置选项。

我该如何修复此问题以添加 libpng 支持?

答案1

你需要告诉 ImageMagick 在哪里定位。幸运的是,libpng附带了一个名为“libpng-config”的配置脚本。

您可以使用标志从本地 libpng 安装中获取链接库选项--L_opts

libpng-config --L_opts

这将返回类似-L /usr/本地/lib. 设置 ImageMagick 的LDFLAGS 目录配置以匹配您的 libpng 库。

# Use the returned value for the LDFLAGS
./configure LDFLAGS='-L/usr/local/lib'

如果libpng-config返回消息'找不到命令',您需要确保 libpng 安装正确,并且可以位于您的 shell 环境中。通常,这可以像向 PATH 变量添加自定义路径一样简单。

export PATH="$PATH:/usr/local/bin"

答案2

我自己在 10.10 上安装 ImageMagick 时遇到了问题,无法正确构建 png 支持,所以我只使用了http://cactuslab.com/imagemagick/其中包括 png 支持。(安装在/opt

答案3

较新的 ImageMagick 版本似乎依赖“pkg-config”来查找您自己的 libpng 构建。我刚刚安装了 pkg-config 并设置了 PKG_CONFIG_LIBRARY=/path/to/my/libpng-version 以使其工作。

HTH,阿克塞尔。

相关内容