C++ 프로그램을 Solaris에서 Linux로 마이그레이션할 때 동적 연결

C++ 프로그램을 Solaris에서 Linux로 마이그레이션할 때 동적 연결

질문

레거시 애플리케이션의 빌드 프로세스를 이전 Solaris 시스템에서 Linux, 특히 RHEL 7.7로 마이그레이션하려고 합니다. 이 애플리케이션은 원래 Solaris Studio(현재는 Oracle Developer Studio라고 함)를 사용하여 구축되었습니다. 가능한 한 많은 종속성을 설치하고 컴파일 플래그를 조정한 후 코드를 다양한 실행 파일로 컴파일할 수 있었습니다.

명령줄에서 이들 중 하나를 실행하려고 하면 다음과 같은 결과가 나타납니다.

$ ./myexecutable
bash: /path/to/my/myexecutable: /usr/lib/amd64/ld.so.1: bad ELF interpreter: No such file or directory

내 시도

아카이브 파일(파일이라고도 함) 연결을 지원하는 이전 동적 링커를 찾고 있는 것 같습니다 .a. 심볼릭 링크를 통해 이를 사용하면 ld-linux.so.2라이브러리가 손상되었다는 오류 메시지가 생성됩니다.

$ ./myexecutable
bash: /path/to/my/myexecutable: Accessing a corrupted shared library

나도 그걸 알아차렸어 /usr/share/man/man8/ld.so.8.gz. 압축을 풀고 심볼릭 링크를 생성했지만 /usr/lib/amd64/ld.so.1위와 같은 오류가 발생했습니다.

yum whatprovides그 버전을 제공하는 것을 찾을 수 없습니다 ld.so.1. 제가 생각할 수 있는 유일한 다른 일은 해당 버전 glibc의 소스 코드를 추적하여 ld.so.1컴파일하는 것입니다.

ld.so.1RHEL 7.x(AMD64)를 사용하는 방법이나 해당 공유 라이브러리를 사용하지 않고 프로그램을 실행할 수 있는 몇 가지 해결 방법을 알고 있다면 알려주시기 바랍니다.

관련 정보