LINUX.ORG.RU

Как вывести текст при запуске динамической библиотеки?

 , , ,


0

2

Бо́льшая часть динамических библиотек моей системы исполняемые. Но при попытке выполнить их возникает ошибка Segmentation failed. Подразумевает ли формат ELF (.so) возможность вывода текстовой информации?

Например: запустил файл-библиотеку — получил текст с версией.

Кажется, Windows DLL так могут. Не ручаюсь, но пример где-то видел, как открытие библиотеки выводило версию.

а) Можно ли реализовать на Линукс (ELF)? б) Если да, есть ли возможность сделать это в clang, при создании библиотеки?


а) Можно ли реализовать на Линукс (ELF)?

Можно. Я разрешаю.

б) Если да, есть ли возможность сделать это в clang, при создании библиотеки?

Можно. Я разрешаю.

Подразумевает ли формат ELF (.so) возможность вывода текстовой информации?

Нет. Но можно сделать сделать ELF запускаемым.

но пример где-то видел, как открытие библиотеки выводило версию.

Попробуй выполнить:

/lib/x86_64-linux-gnu/libc.so.6

Glibc часто приводят как пример «исполняемой библиотеки».

i-rinat ★★★★★
()

Бо́льшая часть динамических библиотек моей системы исполняемые

твоя проблема в этом, для библиотек executable не нужен.

anonymous
()
Ответ на: комментарий от i-rinat

Попробуй выполнить libc.so.6

$ /lib64/libc.so.6

GNU C Library (Gentoo 2.38-r10 (patchset 10)) stable release version 2.38.
Copyright (C) 2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 13.2.1 20240113.
libc ABIs: UNIQUE IFUNC ABSOLUTE
Minimum supported kernel: 3.2.0
For bug reporting instructions, please see:
<https://bugs.gentoo.org/>.
Shushundr ★★★
()