Можно ли загружать две библиотеки общих ресурсов приложения во время выполнения?

У меня есть 2 приложения, которые говорят, что A1, A2 разделяют один общий объект (скажем, lib1), который загружается в приложение во время выполнения. A1 загрузить lib1 с помощью dlopen успешно. Теперь A2 хочет загрузить библиотеку. Может ли A2? (Поскольку lib1 загружается в адресное пространство A1). Что делать, если A1 загружается с использованием RTLD_LOCAL. Может ли A2 загрузить lib?

Я новичок в этой области, пожалуйста, дайте мне указания

One Solution collect form web for “Можно ли загружать две библиотеки общих ресурсов приложения во время выполнения?”

Да, конечно. Из статьи Википедии о библиотеках :

Общая библиотека или общий объект – это файл, который предназначен для совместного использования исполняемыми файлами и файлами дополнительных общих объектов

Другими словами, вся причина, по которой они называются «разделяемыми», заключается в том, что их используют более одного исполняемого файла.

Из документов для RTLD_LOCAL :

Символы, определенные в этой библиотеке, не доступны для разрешения ссылок в впоследствии загруженных библиотеках.

Флаг RTLD_LOCAL для dlopen() просто указывает, что когда A1 загружает lib1 , если он определяет, скажем, функцию f1() , а затем A1 загружает lib2 , он не может использовать f1() из lib1 , поскольку это было загружено локальным ,

  • ldconfig не соответствует пользовательской символической ссылке
  • Влияние статической и динамической привязки на начальный адрес
  • patch: «дескриптор« плохих файлов »в сочетании с каналом и LD_PRELOAD / libtrash
  • Поиск абсолютного пути разделяемых библиотек, используемых исполняемым файлом
  • libcurl.so.4 неопределенная опорная ошибка
  • Найти, где символ общей библиотеки, определенный в живой системе, / список всех символов, экспортированных в систему
  • Что вдруг заставит программы читать /etc/ld.so.preload при запуске?
  • Есть ли полезные метаданные внутри общих объектов, и если да, то как их извлечь?
  • Команда для отображения каталогов, в которых нужно искать общие библиотеки?
  • поиск неопределенного символа
  • Нормально ли для `ldd -version` выйти 1?
  • Interesting Posts

    Разделить длинный вывод на две колонки

    Добавление SSD к существующей файловой системе BTRFS на жестком диске

    Что означает «s» в следующем разрешении: «- rwsr-x —»

    как предотвратить распознавание / доступ к экспортируемой переменной среды дочерней оболочкой (bash)?

    Есть ли «поддерживаемый» способ в RHEL / CentOS 7 для объединения монтирования дерева каталогов поверх точки монтирования NFS?

    Как я могу заставить wlan0 автоматически отображаться, когда я подключаю USB-адаптер WiFi?

    Есть ли способ чередования двух файловых систем одной структуры?

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

    Выполнить расчет в шестнадцатеричном формате с помощью Qalculate

    Gnome: сделать системный текст скопированным

    Вложенный сценарий в сценарии bash

    Пусковая установка Slingscold ничего не находит

    Каковы различия между различными таблицами разделов?

    Объяснение вывода скрипта

    Как восстановить права доступа к файлу sudoers без пароля?

    Linux и Unix - лучшая ОС в мире.