Как заставить 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? В соответствии с документацией, вы сможете указать свою библиотеку с полным путем.