2011-08-19 2 views
3

이전 버전의 공유 시스템 라이브러리와 만 호환되는 Perl 모듈을 다루고 있습니다. 필자의 시스템에는 이전 버전의 라이브러리가 있지만 Perl의 Inline::C이 최신 라이브러리를 제거하지 않고 이전 라이브러리와 강제 연결하는 방법을 알 수 없습니다.인라인 :: C가 이전 라이브러리에 링크되도록하려면 어떻게해야합니까?

나는 시스템 라이브러리 libusb 0.1와 호환되지만 libusb 1.0호환되지 않는입니다 Device::USB를 사용하는 것을 시도하고있다. 내 시스템에 libusb 1.0libusb 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::Cexport LD_LIBRARY_PATH=/usr/local/my_lib:$LD_LIBRARY_PATH, -rpath 등의 전통적인 트릭을 적용 할 수 없을 때 정말 혼란 스럽습니다.

답변

1

인라인 :: C 구성 옵션 LIBS을 사용해 보셨습니까? 설명서에 따르면 lib를 완전한 경로로 지정할 수 있어야합니다.