- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
当运行 ldd
实用程序来查找 httpd
的共享库时,我发现了以下我无法解释的情况:
在我的 Ubuntu
盒子上:
leon@lwaldman-linux:~/Uol/Lxc/py_utils/Container_Builder/_builds/usr/sbin$ ldd httpd
linux-gate.so.1 => (0xf77b2000)
libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf7712000)
libpcre.so.0 => not found
libselinux.so.1 => /lib/i386-linux-gnu/libselinux.so.1 (0xf76f2000)
libaprutil-1.so.0 => not found
libcrypt.so.1 => /lib/i386-linux-gnu/libcrypt.so.1 (0xf76c1000)
libexpat.so.1 => /lib/i386-linux-gnu/libexpat.so.1 (0xf7697000)
libdb-4.7.so => not found
libapr-1.so.0 => not found
libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf767b000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf74d6000)
/lib/ld-linux.so.2 (0xf77b3000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf74d1000)
在 CentOS
盒子上:
[root@localhost sbin]# ldd httpd
linux-gate.so.1 => (0x008b6000)
libm.so.6 => /lib/libm.so.6 (0x0036f000)
libpcre.so.0 => /lib/libpcre.so.0 (0x00835000)
libselinux.so.1 => /lib/libselinux.so.1 (0x0021f000)
libaprutil-1.so.0 => /usr/lib/libaprutil-1.so.0 (0x00dfa000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0x003de000)
libexpat.so.1 => /lib/libexpat.so.1 (0x00695000)
libdb-4.7.so => /lib/libdb-4.7.so (0x0040e000)
libapr-1.so.0 => /usr/lib/libapr-1.so.0 (0x00110000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00257000)
libc.so.6 => /lib/libc.so.6 (0x00e37000)
/lib/ld-linux.so.2 (0x00aae000)
libdl.so.2 => /lib/libdl.so.2 (0x0096d000)
libuuid.so.1 => /lib/libuuid.so.1 (0x007c8000)
libfreebl3.so => /lib/libfreebl3.so (0x00d94000)
为什么 libuuid 和 libfreebl3 列在 CentOS
框上,但没有列在 Ubuntu
上盒子?
我知道 httpd ELF
没有将它们列为依赖项:
0x00000001 (NEEDED) Shared library: [libm.so.6]
0x00000001 (NEEDED) Shared library: [libpcre.so.0]
0x00000001 (NEEDED) Shared library: [libselinux.so.1]
0x00000001 (NEEDED) Shared library: [libaprutil-1.so.0]
0x00000001 (NEEDED) Shared library: [libcrypt.so.1]
0x00000001 (NEEDED) Shared library: [libexpat.so.1]
0x00000001 (NEEDED) Shared library: [libdb-4.7.so]
0x00000001 (NEEDED) Shared library: [libapr-1.so.0]
0x00000001 (NEEDED) Shared library: [libpthread.so.0]
0x00000001 (NEEDED) Shared library: [libc.so.6]
有什么见解吗?
编辑:在两个测试中使用的 httpd 二进制文件是同一个(我从 CentOS RPM 解压缩)。
最佳答案
Apache 可能是在 Fedora 和 Ubuntu 上使用不同的选项构建(编译)的。
也许比较的输出
httpd -V
会告诉你更多相关信息。
关于ubuntu - ldd 不同的输出。相同的二进制文件不同的发行版,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12714219/
当路径不存在时运行 ldd 命令时,我得到的是“找不到文件”而不是路径。bash-3.2$ ldd curl libcurl.so.4 =>/usr/local/lib/libcurl.so.4 li
假设我有一个 A.so 文件,它的依赖项是从 ldd 中找到的 #ldd A [...] libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x00007faaf972
我在可执行文件上运行 truss 命令并得到以下输出: stat64("/net/xyzmachine/vol/tools/solx64/studio11/SUNWspro/lib/rw7/librt
我在使用库时遇到问题,尽管它的版本正确,但找不到它。 ldd /lib/libQt5Core.so linux-gate.so.1 (0xb77ac000) libpt
我正在尝试创建一个共享库 libddv3djava.so 我像这样编译 libddv3djava.so 的源代码: ~/Programming/intellijprojects/ddv3dbindin
我知道 ldd 只能将二进制作为其参数我在这里问的是如何使用二进制运行 ldd,比如 mybin,带有二进制参数。例如,mybin --myparam ./configfile.conf。 如果我为我
我不清楚为什么 ldd 在找不到依赖项时多次向我显示同一个共享库。在一个使用 boost 的小可执行文件中,输出是: libboost_chrono.so.1.49.0 => not found li
我在 Open MPI 创建的可执行文件上运行了 ldd 命令。它显示了对 libpthread.so 的引用使用 LD_PRELOAD 变量,我创建了自己的 pthread_create 实现,但从
假设我们有一个名为 utils.so 的共享库。它可能包含 undefined symbol 。还假设 ldd 报告该库依赖于其他一些库: $ ldd utils.so library1.so
我正在 Linux (Ubuntu 11) 下编译 2 个共享库(“A”、“B”) 库“B”正在使用库“A”的导出函数(与 -lA 静态链接) 但是当我在“B”上运行 ldd 时,我只有* linux
我正在尝试编译项目。它编译成功。我的make命令退出,状态代码为 0并且没有显示错误。 但是,该项目无法运行,当我运行 ldd -d 时它显示我有两个库未找到。 >ldd -d output_fil
为什么给ldd可执行文件名时没有出现动态加载的库?这是真的吗?因为我给的时候找不到。这可能是因为动态加载和动态链接。 请帮我解决这个问题,如果您需要任何进一步的详细信息,请告诉我。 输出如下。 ldd
如果问题很基础,请直截了当。 ldd 命令显示可执行文件上的依赖库是我所知道的。在可执行文件中,这些信息保存在哪里? 最佳答案 这存储在 ELF 的 .dynamic 部分中可执行。参见 ELF-64
我有一个二进制文件,其中 ldd 显示出意外的依赖关系和 libicuuc(来自“icu”)。 #ldd A [...] libxml2.so.2 => /usr/lib64/libxml2.so.2
我有一个使用一堆 .so 文件的二进制文件。 bash-3.00$ file foo foo: ELF 32-bit LSB executable, Intel 80386, version 1 (S
ldd如何知道这取决于 libc.so.6 ,不是 libc.so.5或 libc.so.7 ? libc.so.6 => /lib64/libc.so.6 (0x00000034f4000000)
Version information: ./VideoEncoderFilter.so: libgcc_s.so.1 (GCC_3.0) => /lib/x86_64-linux-gnu/l
我试图为 Linux 部署 Qt/QML 应用程序。发生了一些奇怪的事情,目标系统提示 libQt5Widget.so.5 中 undefined symbol ,而我已经复制了 ldd -r 结果中
如何从可执行文件的 ldd 输出中复制所有共享对象? 我正在寻找这样的东西,但这是用于 find 的,我需要 ldd: find -name "*python3.7*" -exec cp "{}" /
由于使用 Gentoo,更新程序后经常会链接到旧版本的库。通常,revdep-rebuild 有助于解决这个问题,但这次它是对 python 库的依赖,而 python-updater 不会选择它。
我是一名优秀的程序员,十分优秀!