我正在尝试在 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,阿克塞尔。