이전 버전의 공유 시스템 라이브러리와 만 호환되는 Perl 모듈을 다루고 있습니다. 필자의 시스템에는 이전 버전의 라이브러리가 있지만 Perl의 Inline::C
이 최신 라이브러리를 제거하지 않고 이전 라이브러리와 강제 연결하는 방법을 알 수 없습니다.인라인 :: C가 이전 라이브러리에 링크되도록하려면 어떻게해야합니까?
나는 시스템 라이브러리 libusb 0.1
와 호환되지만 libusb 1.0
와 호환되지 않는입니다 Device::USB
를 사용하는 것을 시도하고있다. 내 시스템에 libusb 1.0
및libusb 0.1
이 설치되어 있지만 은 Device::USB
모듈을 설치하는 동안 계속 실패합니다. 이 오류는 libusb 0.1
라이브러리 대신 libusb 1.0
라이브러리에 링크 된 Perl 때문에 발생하는 것으로 보입니다.
/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
등의 전통적인 트릭을 적용 할 수 없을 때 정말 혼란 스럽습니다.