Хорошо ли связывать разделяемую библиотеку с другими разделяемыми библиотеками? - PullRequest
0 голосов
/ 23 августа 2010

У меня есть приложение X, в котором используются общие библиотеки A, B и C. Общая библиотека C также использует некоторые символы из общей библиотеки A. Приложение X связано с A и B во время компиляции, и оно не запускается для загрузки C при запуске время.

Мой вопрос:

Целесообразно ли связывать C с A во время соединения или оставить разрешение символа на время выполнения?

Ответы [ 2 ]

2 голосов
/ 23 августа 2010

Ваш вариант 1. Но так не работает.

  1. Вы связываете C с A.
    Поскольку A - динамическая библиотека, она ничего не будет делать физически.
    Он проверяет, что все зависимости будут удовлетворены A во время выполнения.

  2. Во время выполнения, когда вы dlopen () разделяемая библиотека C
    Он откроет C, и если вы еще не связались с A, он также откроет A
    Но так как A уже открыт, он просто разрешит символы в C с открытым A.

0 голосов
/ 23 августа 2010

Я бы выбрал вариант 2. Оставьте разрешение на время выполнения.Позднее связывание - лучший вариант.Также я никогда не знал, что вариант 1 возможен :)

...