Есть ли способ заставить двоичный файл Linux ELF иметь дополнительную зависимость от общей библиотеки без dlopen()?Linux

Ответить
Anonymous
 Есть ли способ заставить двоичный файл Linux ELF иметь дополнительную зависимость от общей библиотеки без dlopen()?

Сообщение Anonymous »

У меня есть приложение, которое хочет использовать общую библиотеку (

Код: Выделить всё

libwayland-client.so
), если он доступен, но его необходимо запустить, даже если он недоступен. Обычный способ реализовать это — использовать dlopen() и dlsym() для чтения общей библиотеки вручную, но это требует написания большого количества связующего кода и не позволяет мне напрямую использовать заголовки разработки. Есть ли способ пометить зависимость общей библиотеки как необязательную в двоичном файле ELF так, чтобы ее мог понять загрузчик ELF?
Обратите внимание, что это отличается от маркировки символа из общей библиотеки. как необязательный (это можно сделать, пометив его как слабый символ). Я спрашиваю о том, как сделать слабой зависимость всей библиотеки.
Обратите также внимание, что речь идет не о зависимостях во время сборки - меня устраивает зависимость от общей библиотеки во время сборки. , но я не хочу заставлять своих пользователей иметь эту общую библиотеку на своих машинах.
(В моей конкретной ситуации я хочу, чтобы мое приложение поддерживало и X11, и Wayland, но должным образом поддерживать Wayland, ему нужно сделать несколько звонков, чтобы libwayland-client.so Однако я хочу избежать отправки отдельного двоичного файла для чистых пользователей X11.)

Подробнее здесь: https://stackoverflow.com/questions/792 ... brary-depe
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»