Вопрос

Мне трудно понять вывод ldd, особенно идентификаторы процессора.Речь идет о следующей строке:

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

У меня есть несколько вопросов по этому поводу:

  • Что означает «ЭЛЬФ»?Я знаю, как называются двоичные файлы Linux (двоичные файлы Windows называются двоичными файлами PE, «переносимыми исполняемыми файлами»), но разве ELF не является аббревиатурой чего-то?
  • Что означает ЛСБ?Я даже предположить не могу...
  • Я вижу там строку «Intel», и теперь я серьезно задаюсь вопросом о переносимости двоичных файлов Linux, поскольку ldd, похоже, ожидает, что каждый двоичный файл будет скомпилирован на процессоре Intel...но что, если он не был скомпилирован на процессоре Intel?Или когда я пытаюсь запустить двоичный файл на компьютере, который не работает на процессоре Intel?
  • Почему ']'?Я предполагаю, что это должно быть что-то вроде идентификатора компоновщика, но ']' не очень похоже на идентификатор...

заранее спасибо

Это было полезно?

Решение

ELF — это исполняемый файл и формат Linkable — он определяет формат библиотеки — см. Исполняемый и связываемый формат.LSB указывает порядок байтов данных.Intel 386 означает, что он будет работать на всех чипах, совместимых с 386, включая Pentium и чипы AMD, но не (скажем) на архитектурах Power PC или IBM/370.

Что касается ']', то эта библиотека не будет иметь ничего общего с тестовой утилитой, не так ли?Тот, который позволяет вам сказать:

if test -x foobar

или

if [ -x foobar ]

в сценариях оболочки.

Другие советы

  • ЭЛЬФ
  • младший бит
  • Интел:Двоирные файлы Linux не предназначены для портативных процессоров Accros и ахитектур.Этот предназначен для использования на чашке, способной запускать код Birary Intel 80386.
  • ']': ??
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top