Как заставить Inline::C ссылаться на более старую библиотеку?

Я имею дело с модулем Perl, который совместим только со старой версией общей системной библиотеки. Так уж получилось, что у меня в системе установлена ​​более старая версия библиотеки, но я не могу понять, как заставить Perl Inline::C связать эту старую библиотеку, не удаляя текущую, актуальную библиотеку.

Я пытаюсь использовать Device::USB, который совместим с системной библиотекой libusb 0.1, но несовместимо с libusb 1.0, Моя система имеет libusb 1.0 а также libusb 0.1 установлен, но make test постоянно терпит неудачу при попытке установить Device::USB модуль. Эта ошибка, по-видимому, вызвана связью Perl с libusb 1.0 библиотеки вместо libusb 0.1 библиотеки.

В /usr/lib Я вижу, что конкретная версия libusb что я хочу использовать (libusb-0.1.so.4) там. Что мне нужно сделать, чтобы ссылаться конкретно на эту библиотеку вместо общего libusb.a? редактировать Makefile.PL? Изменить .pm файлы? Передайте дополнительные переключатели make?

Я читал на компоновщик, но этот дополнительный слой Inline::C действительно запутывает, когда / где традиционные уловки export LD_LIBRARY_PATH=/usr/local/my_lib:$LD_LIBRARY_PATH, -rpathи т. д. могут быть применены.

1 ответ

Решение

Вы пытались использовать опцию конфигурации Inline::C LIBS? В соответствии с документацией, вы сможете указать свою библиотеку с полным путем.

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