libpng未在Mac OSX 10.9.2上链接

时间:2014-04-01 15:50:06

标签: macos libpng

我在我的Mac上安装了matrix2png并在上周安装了另一个图像操作工具" circos"之前使用它没有问题。 Circos要求我安装不同版本的libpng,我做到了。之后,我无法再运行matrix2png,这给了我以下错误。我认为旧的ligpnb不再联系了。有谁知道如何解决这个错误? - 感谢你的帮助。

dyld: Library not loaded: /usr/local/lib/libpng15.15.dylib
  Referenced from: /usr/local/bin/matrix2png
  Reason: image not found

2 个答案:

答案 0 :(得分:8)

这些步骤解决了我的问题:

brew versions libpng

你会看到一些版本的libpng,但遗憾的是不是1.5.15,所以接下来你应该安装1.5.18。

git checkout 7bec702 Library/Formula/libpng.rb
brew install libpng

你会发现1.5.18版和其他版本。

ln -s /usr/local/Cellar/libpng/1.5.18/lib/libpng15.15.dylib /usr/local/lib/libpng15.15.dylib`

请参阅https://github.com/Homebrew/homebrew-php/issues/1055

有关安装某些版本的brew配方的更多信息,请访问https://coderwall.com/p/lqphzg

答案 1 :(得分:7)

您的新版libpng可能已更改其dyld文件的名称。这通常在升级时发生(特别是在主要版本之后)。要验证这一点,请打开终端并输入:

ls /usr/local/lib/libpng*

你看到了什么?

从您的错误消息中我们知道matrix2png正在寻找libpng15但是如果您在安装circos时已升级,那么您现在可能在您的系统上安装了libpng16。因此,matrix2png无法找到它正在寻找的文件,并且会感到不快。

这次修理:

尝试重新安装matrix2png并查看它是否注意到依赖项问题并为您修复它。你真的不想降级libpng,也不想在你的系统上有两个版本,所以拥有最新版本的matrix2png会很好。

看起来matrix2png来自C源代码,所以您想要重建它。下载源代码或然后打开终端。导航到包含源代码的文件夹,然后运行configure,然后运行make。 Configure将为您的系统生成一个Makefile,然后make将使用该文件生成一个新的二进制文件。我已经在我的Mac上测试了这个(使用libpng16),发现构建的matrix2png没有任何错误。

建议的未来方法:

为了防止将来出现链接问题,您可能需要使用自制程序或macports等软件包管理器。如果你正在使用(或想要使用)homebrew,它有circos和lib2png(但不是matrix2png,抱歉!)。安装brew后,在终端中键入以下内容:

brew install libpng

它应该检测链接问题/版本冲突并指导您修复它们。 Brew将所有文件放在一个酒窖中。位于/ usr / local / Cellar中,然后象征性地将它们链接到您的系统中。

如果您已经在使用brew,请尝试brew doctor并按照说明解决问题。

我的经验(过去几周我一直在处理很多的版本冲突)是包管理员让生活更轻松。有时我不得不删除并重新安装软件包以修复版本问题,但通常brew会保持整洁有效。