我在我的苹果电脑上安装了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发布于 2014-04-16 13:09:48
这些步骤解决了我的问题:
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。
发布于 2014-04-14 18:24:33
您的新版本的libpng可能已经更改了其dyld文件的名称。这种情况经常发生在升级过程中(特别是在主要版本之后)。要验证这一点,请打开终端并键入:
ls /usr/local/lib/libpng*
你看到什么?
从您的错误消息中,我们知道matrix2png正在寻找libpng15,但是如果您在安装circos时进行了升级,那么现在您的系统上可能已经安装了libpng16。因此,matrix2png将无法找到它正在查找的文件,并且将会不高兴。
这次修复:
尝试重新安装matrix2png,看看它是否注意到依赖问题并为您修复它。您并不是真的想降级libpng,也不希望在您的系统上有两个版本的matrix2png,所以拥有最新版本的libpng会更好。
看起来matrix2png来自于C源代码,所以你需要重新构建它。下载源代码或然后打开一个终端。导航到包含源代码的文件夹并运行configure,然后运行make。Configure将为您的系统生成一个Makefile,然后make将使用该文件生成一个新的二进制文件。我在我的苹果电脑上(使用libpng16)进行了测试,发现matrix2png的构建没有任何错误。
建议的未来方法:
为了防止将来出现链接问题,您可能需要使用包管理器,如homebrew或macports。如果你正在使用(或想要使用) homebrew,它有circos和lib2png (没有matrix2png,对不起!)。安装brew后,在终端中键入以下内容:
brew install libpng
它应该检测链接问题/版本冲突,并指导您修复它们。Brew将所有文件放在/usr/local/Cellar中的“Cellar”位置,然后以符号方式将它们链接到您的系统中。
如果您已经在使用brew,请尝试使用brew doctor并按照说明解决问题。
我的经验(我在过去的几周里处理了很多版本冲突)是包管理器让生活变得更容易。有时,我不得不删除并重新安装软件包来修复版本问题,但总的来说,brew保持了整洁和正常工作。
https://stackoverflow.com/questions/22790792
复制相似问题