LINUX.ORG.RU

подскажите разницу между ключами линкера -L и -rpath-link

 , , rpath-link


0

1

подскажите разницу между ключами линкера -L и -rpath-link.

Ман прочитал но ничего не понял. я раньше считал что -rpath-link это модификация -rpath а не -L но сейчас немного запутался.

★★★★★

Последнее исправление: cvv (всего исправлений: 2)

Забавный вопрос. Так что с чем надо сравнивать? -L c -rpath-link или -rpath с -rpath-link?

C -L и -rpath-link все достаточно очевидно. -L - path используемый на этапе сборки и, так как обычно собирается для текущего компьютера, то shared path генерируется по нему же.

Однако перидически надо собрать для другого компа, собрав оттуда библиотеки в какую-то директорию (возможно в ту же нельзя, можно что-то сломать локально) надо ld предупредить откуда реально забирать библиотеки в оконечном пункте. Для этго имеем -rpath-link.

io ★★
()
Ответ на: комментарий от io

надо ld предупредить откуда реально забирать библиотеки в оконечном пункте. Для этго имеем -rpath-link.

ничего не понял. звучит как будто ты путаешь -rpath с -rpath-link. можешь подробней или другими словами?

cvv ★★★★★
() автор топика
Ответ на: комментарий от cvv

Да, точно путаю. -rpath меняет runtime search path, а -rpath-link работает в родном окружении и может его не поменять, как следствие во время сборки и выполнения могут быть различные библиотеки. Судя по пунктам просто указывает приоритетный поиск разделяемых библиотек по сравнению с -L.

io ★★
()
Ответ на: комментарий от io

Не совсем, когда линкуешься с динамической библиотекой, которая в свою очередь линкуется еще с какой то библиотекой, то -L не хватит просто. Тут и надо указывать -rpath или -rpath-link, ну а последний не оказывается влияния на секцию RPATH.

placement_new ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.