gcc связывание разделяемых библиотек: вторичные зависимости с $ORIGIN

Это дополнительный вопрос к этому.

Я понимаю, что с помощью $ORIGIN в -rpath Опция генерирует динамический абсолютный путь, который всегда будет указывать на указанное местоположение - независимо от того, где я использую библиотеку.

Что меня смущает, так это то, что я использую эту библиотеку для генерации общего двоичного файла и снова устанавливаю -Wl,-rpath вариант использования $ORIGIN чтобы бинарный файл всегда находил свою библиотеку. Теперь оригинал $ORIGIN Значение библиотеки больше не доступно или неверно, потому что она, кажется, перезаписана новой.

Как-то это понятно, так как сейчас я создаю новый общий объект - двоичный файл, который имеет свой собственный $ORIGIN, Способ обойти это, будет предоставить двоичные файлы -rpath с обоими местоположениями, один для библиотеки и тот, который нужен самой библиотеке. На мой взгляд, это делает -rpath почти бесполезный, потому что я не могу просто указать ссылку на библиотеку и указать ее местоположение, мне также нужно указать расположение зависимости библиотеки.

Мой вопрос: есть ли способ указать иерархический -rpath значения с использованием $ORIGIN? Я хотел бы избежать абсолютных путей, которые, очевидно, решили бы мою проблему.

0 ответов

Другие вопросы по тегам