我已经从 /usr/local/lib/ 目录对两个库(libfreetype 和 libpng)进行了符号链接,现在我运行的二进制文件显示“要打开,您需要安装 X11...”。在此之前,它经常抱怨找不到 libfreetype 和 libpng(在 /usr/local/lib)。
问题是我不想安装 XQuartz,我的二进制文件只需要 PNG 和 Freetype 支持。当然,这些库也不需要 XQuartz。
有没有办法在不安装 XQuartz 的情况下获取这些二进制文件?假设我没有计算机的管理员权限。是的,我拥有它 ;-) 我只是不想安装系统范围的东西,到目前为止我已经管理得很好了 - 我有一个可以正常工作的编译器,并且 GNU make 二进制文件运行得很好。
我下载了独立的 libpng,但看起来至少位于 /usr/X11/lib 中的 libfreetype 是一种占位符,它会导致显示上述对话框。也就是说,它是一个假的。
答案1
事实上,我自己解决了这个问题。长期以来,我一直怀疑显式依赖列表是人为构造的,并不真正对应实际的由于程序运行的依赖性,我决定深入挖掘并最终得到以下结论:
我从官方网站下载了 XQuartz 软件包,但我没有安装它,而是用名为 Pacifist(一个 [共享软件] 软件包浏览器)的程序打开它。然后我提取了两个文件 -libfreetype.6.dylib
和libpng.12.0.dylib
,将它们复制到与该程序相同的目录中,它就运行正常了。
当然,XQuartz 可能只不过是一组库和一组二进制文件,但我真的不需要它。当我需要它时,我可以安装它,并删除上述两个文件,让程序依赖于 XQuartz 安装的系统范围的库。在那之前,我很高兴没有 XQuartz。我在一台配备 64GB SSD 的 Macbook Air 上,我更喜欢将上面的可用空间用于我自己的文件。