GCC:如何找出可执行文件中包含库的原因

时间:2018-10-24 01:03:15

标签: gcc dynamic-linking inkscape libpng

这是问题所在

(在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.16libpng-1.5.13均根据需要列出。

因此,我怀疑其他一些库要求使用libpng-1.5.13。我编写了一个小型Python程序,该程序可以接收所有库(libpngs除外)并将ldd应用于每个库。他们都没有列出libpng15。现在怎么办?我怀疑如果任何辅助库需要libpng15,它将在此处列出,但是,以防万一我使搜索递归进行。没有运气。

显然,inkscape本身在请求旧版本。在搜索树中的所有文件中进行的简单搜索仅在查看器和实际的inkscape可执行文件中显示字符串“ png15”。

可能还有我的旧程序仍与png15链接,所以我可能想保留该版本。

大多数(如果不是所有)网上引用此错误(或类似错误)的引用都引用了具有非常老的pnglib(1.2.4x)的程序,试图使用较新的版本,但是这是另一回事。

libpng-config --version报告1.6.16

任何建议如何确定此问题的根源?特别是为什么inkscape包含旧的libpng?

0 个答案:

没有答案