首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >了解ldd的输出

了解ldd的输出
EN

Stack Overflow用户
提问于 2010-06-08 08:38:32
回答 2查看 1.1K关注 0票数 1

我很难理解ldd的输出,尤其是处理器标识符。所讨论的字符串是这样的:

代码语言:javascript
复制
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处理器之上的计算机上运行二进制程序时?
  • 为什么是“]?我猜应该是某种链接者识别,但是“]”看起来并不像一个标识符.

提前感谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-06-08 08:46:37

精灵是可执行的和可链接的格式-它指定库的格式-参见可执行和可链接格式。LSB指定数据的属性。英特尔386意味着它将运行在与386兼容的所有芯片上,其中包括奔腾和AMD的芯片,但不能(比如说) Power PC或IBM/370架构。

至于“]”,这个库与测试实用程序没有任何关系,对吗?允许你说:

代码语言:javascript
复制
if test -x foobar

代码语言:javascript
复制
if [ -x foobar ]

在shell脚本中。

票数 3
EN

Stack Overflow用户

发布于 2010-06-08 08:47:06

  • 小精灵
  • LSB
  • Intel: Linux二进制文件不应该是可移植的accros、CPU和and体系结构。这一个是打算使用在一个杯,能够运行英特尔80386的密码。
  • ‘]:?
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2995813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档