问题标签 [ldd]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1100 浏览

c++ - 如何配置 Qt 项目以减少编译后的二进制文件的依赖关系?

  • MY_OS = KUbuntu 13.10 x86_64
  • QT_VERSION = 5.2.0

我有一个要编译的 Qt 项目。项目很小,几乎是HelloWorld。

当我编译它时,我得到的结果二进制文件有很多依赖项,即使重新分发了 Qt 库,它也不能在干净的 KUbuntu 13.10 x86_64 上工作!

所以我决定从另一个 Qt 项目中学习一些东西——我下载了源代码并编译了它的otter-browser—— 结果与我的项目相同。为了比较,我下载了一个 otter-browser 的 deb 包并从中提取了二进制文件。

这是打包在 deb 中的二进制文件的 ldd 输出:

这是我自己编译的 ldd 输出(我尝试过 CMake 和 Qmake - 没有区别,发布\调试版本 - 相同)

二进制文件的大小相当小 - 2.1 Mb(deb)对 1.6(由我编译)。这意味着所有这些库都没有静态链接到 deb 二进制文件(恕我直言,否则大小约为 10-15Mb)

所以我想知道如何将项目编译为只有 Qt Libs 和一些琐碎的东西,如 libbstdc++、libgcc、libc 依赖项?

如果我错过了对项目部署的一些基本了解,请随时提供一些链接而不是冗长的答案。

谢谢!

0 投票
1 回答
443 浏览

c - NetBSD:编译 cwm 后出现动态库错误

我编译了原始的 cwm tgz 包(不是 netbsd 包)

可以正常工作。启动 cwm 后

错误

出现。ldd 输出为:

其中“未找到”直接指的是 cwm 二进制文件。它已与命令链接

所以链接器应该找到 libX11 和 libXext。

装载机为什么会抱怨?

0 投票
1 回答
44 浏览

python - 正则表达式提取文件名中的“++”损坏的文件名

我正在开发一个实用程序来帮助其他人解决依赖地狱。我可以通过 ldd 提取 UNIX 路径输出,但在一种情况下,我的正则表达式无法处理文件名中 2 + 的存在。我的正则表达式如下:

有什么想法可以修改它来处理 + 吗?

测试数据为:

如果有人有意见,请提前致谢。

0 投票
1 回答
3115 浏览

solaris - 未找到符号 (ldd),但它存在 (nm)

我的应用程序抱怨找不到符号:

ldd 也是这样说的:

但是,符号在那里 - 这就是 nm 所说的:

但正如你所看到的:Shndx=UNDEF。这意味着什么?我想如果某些东西是未定义的,那它根本就不存在。但不知何故它就在那里,虽然我的应用程序找不到它。

系统:Solaris 10 / UltraSPARC 我的应用程序和所有库都是 64 位的,/foo 在 LD_LIBRARY_PATH_64 中(/bar 不在)。

编辑:同时我知道 UNDEF 就像“需要在另一个库中解决”。而且我还找到了真正具有符号_ 1cDstdEcerr的lib - 它是libCstd.so,它位于/usr/lib 中。或者更准确地说(因为我们需要 64 位变体)/usr/lib/64. 因此它位于 crle 显示的系统默认库搜索路径之一中。现在的问题是:当包含符号的库在系统的搜索路径中时,如何无法解析符号?

0 投票
1 回答
2004 浏览

linux - 如何解决由于 Linux 中包含多个版本的库而发生的版本冲突

在我的项目中,我试图使用两个已经编译和生成的库。让我们说 liba.so(我们自己的库在某个时候创建​​)和 libssl.so.10。(它在 Linux 中可用)。

现在 liba.so 具有依赖项 libcurl.so.3 和 libssl.so.10 具有依赖项 libcurl.so.4(最新)

libcurl.so.3 和 libcurl.so.4 在系统中都可用。

因此,当我尝试在我的项目中同时使用它们时,我遇到了版本冲突。是预期的吗?如果是,我该如何解决这个问题?

有没有办法用最新的 libcurl.so.4 修改 liba.so 依赖项而无需再次构建这个库?或者我是否需要使用最新的 libcurl.so.4 再次构建 liba.so?

谢谢你的帮助

0 投票
1 回答
2035 浏览

linux - CentOS - 程序找不到丢失的库,但 ld.conf 指向它

当我在/opt/Qt5.1.0/5.1.0/gcc_64/plugins/sqldrivers/libqsqlmysql.so上运行 ldd 时,我看到它找不到 libmysqlclient_r.so.16

所以 libmysqlclient_r.so.16 丢失了......所以我做了一个“find / -name libmysqlclient_r.so*”并发现:

/usr/lib64/mysql/libmysqlclient_r.so

所以看来我的程序没有找到so文件。所以我查看了我的 /etc/ld.so.conf.d/ 并找到了包含以下内容的 maria conf 文件:

/usr/lib64/mysql

这不是意味着 linux 加载器应该找到丢失的库文件吗?上面的程序需要 libmysqlclient_r.so.16 ,而 libmysqlclient_r.so 在 /etc/ld.so.conf.d/mariadb-x86_64.conf 提供的LD路径上

这里缺少什么链接?


更新:我添加了从 .so.16 到 .so 的符号链接,但仍未解决:

并且“ldconfig -v | more”显示(只是部分):

我不明白这行libmysqlclient.so.18 -> libmysqlclient_r.so.16 - 为什么 _r.so.16 没有列出?我很接近......只是无法弄清楚最后一点!

0 投票
1 回答
110 浏览

linux - 我需要列出在 UNIX/Linux 中具有链接到它们的指定共享库的程序(如 ldd,反之亦然)

unix/linux 中的 ldd 命令列出了程序的所有动态链接库。

如何确定相反的问题:
链接到指定共享库的程序列表是什么?

例如,我需要一种获取使用“libz”的程序列表的方法。

有这个命令吗?

0 投票
1 回答
84 浏览

perl - 奇怪的 rpm 要求:perl(a)

我将我公司 icinga 安装的几个部分打包为 RPM,用于从中央监控解决方案到分布式解决方案的事务。

在此过程中,我轻松地打包了 nagios 插件文件夹,并且我发现新版本的 rpmbuild 使用 ldd 自动计算需求。

现在我的包有大量未满足的依赖项,主要是 perl 模块。其中一些要求是神秘的或模棱两可的:我在谷歌或存储库中找不到任何关于它们的信息:

我想我可以找出其中的大部分,但 perl(a)。

任何帮助,将不胜感激。

0 投票
1 回答
2253 浏览

linux - Linux:如何删除共享库版本依赖

假设我有一个libxxxx.so依赖于其他一些共享库的文件,例如:

现在,我将它放在libxxxx.so另一个包含这些库的盒子上,这些库直接由 Samba RPM 安装。但仍然抱怨它们不可用(这是实际的错误输出)。我该如何解决?ldd

0 投票
1 回答
4651 浏览

linux - 有没有办法确定 Linux 上的库使用的线程本地存储模型

有没有办法在 Linux 上查询共享库的 TLS 模型?(例如使用 ldd 或其他工具)。

我在使用“initial-exec”模型加载太多库时遇到问题,并且想确定哪些第三方库使用此模型(因此我可以释放一些插槽,例如通过静态链接)。

这会导致错误:

看到这个问题