다시 컴파일하지 않고도 동적 링크 대상을 변경할 수 있습니까?

다시 컴파일하지 않고도 동적 링크 대상을 변경할 수 있습니까?

다운로드했습니다프로그램아쉽게도 소스코드 배포로는 제공되지 않습니다. 실행하려고 하면 오류가 발생합니다.

공유 라이브러리 로드 오류: libjpeg.so.62: 공유 개체 파일을 열 수 없습니다. 해당 파일 또는 디렉터리가 없습니다.

프로그램이 내 배포판에 없는 특정 버전의 libjpeg에 연결된 것 같습니다. /usr/lib32/libjpeg.so.62내 실제 이름을 따서 명명된 심볼릭 링크를 만드는 것은 libjpeg.so문제가 되지 않지만, /usr/lib32단지 프로그램이 작동하도록 하기 위해 이리저리 뒤지는 것은 어리석고 지나친 것처럼 보입니다.

libjpeg.so대신 프로그램을 동적으로 링크하도록 하는 방법(재컴파일 없이)이 있습니까 libjpeg.so.62?

FWIW, file이 프로그램에 대한 정보는 다음과 같습니다.

ELF 32-bit LSB  executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped

답변1

파일을 바이너리 편집(예: )하고 모든 항목을 크기 와 정확히 동일한 경로 로 vim -b바꿉니다 . 예:/usr/lib32/libjpeg.so.62libjpeg.so/usr/lib//////libjpeg.so

/usr/lib32/libjpeg.so.62
/usr/lib//////libjpeg.so

관련 정보