gcc - GCC:如何找出可执行文件中包含库的原因
问题描述
这就是问题:
(在 Linux Slackware64 上)我编译了 Inkscape (0.92.3),发现导出到 PNG 不起作用。终端上的指示告诉我:
libpng warning: Application built with libpng-1.6.16 but running with 1.5.13
第一个反应是使用ldd
. 事实上,两者libpng-1.6.16
都libpng-1.5.13
被列为必要的。
所以,我怀疑其他一些库需要libpng-1.5.13
. 我制作了一个小型 Python 程序,它采用所有库(libpngs 除外)并应用于ldd
每个库。他们都没有列出libpng15
。现在怎么办?我怀疑如果需要任何二级库libpng15
,它会在此处列出,但是,以防万一我使搜索递归。没运气。
因此,显然,inkscape
它本身要求的是旧版本。在搜索树中的所有文件中进行简单搜索仅在查看器和实际的 inkscape 可执行文件中显示字符串“png15”。
我的一些旧程序可能仍然与 png15 相关联,所以我可能想保留那个版本。
大多数(如果不是所有)网络上提到此错误(或类似错误)的引用都是指具有非常旧的 pnglibs(1.2.4x)的程序试图使用较新的版本,但这里是相反的。
libpng-config --version
报告1.6.16
任何建议如何确定这个问题的根源?特别是为什么inkscape包含旧的libpng?
解决方案
推荐阅读
- image - 在没有右键菜单的情况下加载图像后保存图像
- java - Lucene 图像检索 closeWriter() 错误
- kivy - 如何使用 virtualenv 在 PyCharm 中创建 Python Kivy 项目?
- javascript - 如何修复可调整大小的可拖动元素的纵横比?
- node.js - 功能预部署错误:命令以非零退出代码2“导入问题”终止
- python - 矩形的其他两个点给出两个点和宽度
- reactjs - 如何删除 PrimeReact 的菜单栏中的菜单栏按钮?
- python-3.x - 当属性存在并返回回退时getattr()没有获取属性
- reactjs - 如何在 config-overrides.js 中设置 historyApiFallback
- fish - 鱼壳:“错误:无法打开通用变量文件'/':权限被拒绝”