繁体   English   中英

了解ldd的输出

[英]Understanding the output of ldd

我很难理解ldd的输出-尤其是处理器标识符。 有问题的字符串是这个:

Shortest.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, from ']', not stripped

我对此有几个疑问:

  • “ ELF”是什么意思? 我知道这就是Linux二进制文件的名称(Windows二进制文件称为PE二进制文件,“便携式可执行”二进制文件),但是ELF不是某种缩写吗?
  • LSB是什么意思? 我什至无法猜到...
  • 我在那里看到字符串“ Intel”,现在我严重怀疑Linux二进制文件的可移植性,因为ldd似乎希望每个二进制文件都可以在intel处理器上进行编译……但是,如果不是在Intel处理器上进行编译怎么办? 还是当我尝试在没有运行Intel处理器的计算机上运行二进制文件时?
  • 为什么 ']'? 我的猜测是应该由某种Linker标识,但是']'看起来不太像一个标识符...

提前致谢

ELF是可执行的和可链接的格式-它指定库的格式-请参阅可执行和可链接格式 LSB指定数据的字节序。 英特尔386意味着它将在所有与386兼容的芯片上运行,包括奔腾和AMD芯片,但不能(例如)Power PC或IBM / 370体系结构。

至于']',这个库与测试实用程序没有任何关系,不是吗? 一个可以让您说:

if test -x foobar

要么

if [ -x foobar ]

在shell脚本中。

  • 精灵
  • 最低位
  • 英特尔:Linux二进制文件并非意味着可移植的CPU和架构。 该代码旨在用于能够运行Intel 80386二进制代码的CUP。
  • ']':??

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM