У меня есть библиотека с закрытым исходным кодом, которая находится в файле с именем 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}
.
Так что это работает, но это рекомендуемый способ?