Использование local::lib с общими библиотеками.so сторонних производителей

У меня есть библиотека Perl, которая состоит из библиотеки C в двоичной форме (.so файл) и исходные тексты для привязок Perl для этой библиотеки (Makefile.PL так далее).

Все, что мне нужно, - это возможность запускать образцы Perl, поставляемые с библиотекой. Я бы не хотел устанавливать что-либо глобально или изменять общесистемные конфигурации.

Поэтому я создал специального пользователя и хочу, чтобы все работало внутри домашнего каталога. Изменение среды и добавление файлов / папок в homedir, конечно, хорошо.

у меня уже есть local::lib и различные помощники CPAN, установленные для всей системы (cpan, cpanp а также cpanm так что я могу использовать их, если они помогут.

Я мог бы создать ~/lib и положи .so там, или положить его где-то внутри ~/perl5,

Вопрос в том, как сделать разделяемую библиотеку C доступной для привязок Perl во время компиляции и во время выполнения. Кажется мне нужно LD_LIBRARY_PATH а также LDFLAGS переменные среды, но я не уверен, как использовать их вместе с local::lib,

Кроме того, библиотека называется foo.1.2.3.4.so но линкер хочет -lfoo, Я должен создать foo.so -> foo.1.2.3.4.so символическая ссылка сама?

Upd:

Соответствующая часть сформирована Makefile:

    LD_RUN_PATH="$(LD_RUN_PATH)" $(LD)  $(LDDLFLAGS) $(LDFROM) $(OTHERLDFLAGS) -o $@ $(MYEXTLIB)    \
      $(PERL_ARCHIVE) $(LDLOADLIBS) $(PERL_ARCHIVE_AFTER) $(EXPORT_LIST)    \
      $(INST_DYNAMIC_FIX)

Исправление LDDLFLAGS, чтобы включить дополнительный -L Переключатель работает, но чувствует себя грязным.

0 ответов

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