Имам библиотека със затворен код, която идва във файл с име libfoo.so.1.2.3.4
. objdump -p
показва, че няма SONAME
, но има RPATH=/usr/local/lib
.
Лоша практика ли е? Трябва ли да се опитам да накарам авторите на библиотеката да променят опциите?
Как трябва да свържа моя код с него? Не искам да променям конфигурация за цялата система или да замърсявам директории, в които може да се записва само от root
.
Създадох фиктивен a.c
файл с празен main()
и се опитвах да се свържа с gcc a.c -L. -lfoo
. Проваля се. Ако създам libfoo.so -> libfoo.1.2.3.4.so
символна връзка на ръка и задам export LD_LIBRARY_PATH=$(pwd)
, тя работи и ldd
казва libfoo.so => {correct path}
.
Така че донякъде работи, но това ли е препоръчителният начин?