LINUX.ORG.RU

Линковка к символическим ссылкам

 , ,


1

2

Когда я пытаюсь слинковать что-то к файлу libjsoncpp.so, оно линкуется к символической ссылке libjsoncpp.so.1. Мне нужно слинковать именно к libjsoncpp.so, т.к. в других дистрибутивах, например арче, файла libjsoncpp.so.1 нет в пакете jsoncpp. Как это сделать?
(Мой дистрибутив - дебиан)

Это сошки либы: https://i.postimg.cc/d3j86zYw/image.png
Тут я собрала пример: https://i.postimg.cc/TwZkB8Fb/image.png
Тут я проверяю его на арче: https://i.postimg.cc/qByQg5Wm/image.png

Ответ на: комментарий от mirai65536

Мне бы хотелось чтоб можно было просто установить зависимости, разархивировать архив с моей игрой и играть

-Wl,-rpath=. и пачку сошек рядом с бинарником, problem soved

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

Если сошки будут вместе с игрой то нет никакого смысла в динамической линковке, лучше тогда использовать статическую.

А если ты про симлинки, то это костыль.

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

На самом деле нет, start.sh с LD_LIBRARY_PATH всё равно нужен

Почто?

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

Если сошки будут вместе с игрой то нет никакого смысла в динамической линковке

лучше тогда использовать статическую

man лицензия

И вот еще чтиво, чтобы понимать, откуда у .so.1 растут ноги: https://github.com/asheplyakov/dsoabivers

Может после этого станет чуточку понятнее, что ты хочешь какой-то дичи.

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

Не нужен. Проверено.

Вообще, видел такую штуку? Там всё через -runpath работает. И ей не просто не нужен LD_LIBRARY_PATH, она с ним даже отказывается запускаться.

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

Если в собранном бинарнике прописан rpath, то LD_LIBRARY_PATH не нужен.

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