내 컴퓨터에 내 프로그램을 구축 중입니다 (libtiff.so -> libtiff.so.5
). 그런 다음 libtiff.so -> libtiff.so.4
인 다른 컴퓨터에서 빌드를 푸시하십시오.공유 라이브러리의 이전 버전에 링크하는 방법
런타임에 내 프로그램이 존재합니다 :«공유 라이브러리를로드하는 중 오류가 발생했습니다 : libtiff.so.5
: 공유 오브젝트 파일을 열 수 없습니다 : 해당 파일 또는 디렉토리 없음».
다른 컴퓨터를 업그레이드 할 수 없어 실행중인 컴퓨터와 동일한 버전의 가상 컴퓨터에서 컴파일하지 않는 것이 좋습니다. 따라서 컴파일러에서 libtiff.so.5
대신 libtiff.so.4
을 사용하도록하고 싶습니다.
내 컴퓨터에 이 설치되어 있습니다 (주소는 libtiff.so.5
). 최신 버전 대신이 버전과 어떻게 연동 할 수 있습니까? 나는 libtiff.so -> libtiff.so.4
을 움직일 생각을했지만, 최신 버전이 필요하다면 내 시스템을 망가뜨릴 까봐 두렵다. (apt-get purge libtiff5
은 다른 패키지가 필요하기 때문에 오류가 난다.)
라이브러리의 이전 버전과 링크 할 수 있습니까? 그렇다면 어떻게? libtiff.so
의 심볼 링크를 이전 버전으로 변경하는 것이 유해합니까? 그렇지 않다면 문제가 해결 될까요?
아마도 [LD_PRELOAD] (http://en.wikipedia.org/wiki/Dynamic_linker)를 사용하면됩니다. – jml
링크 할 때 일반적인'-ltiff' 대신 .so.4에 전체 경로를 사용하는 것은 어떻습니까? (libtiff4 호환 헤더를 컴파일 할 필요가 있습니다.) –
컴파일러가 공유 라이브러리의 위치를 찾을 수 없습니다. 나는 PATH도 통과해야한다고 생각합니다. –