실행파일의 .interp 섹션에 명시된 dynamic linker 가 시스템에 존재하지 않아서 동적 링킹을 할 수 없을 때 이런 에러가 나기도 합니다.
제 경험에 의하면 크로스 컴파일을 할 때 dynamic linker 를 명시해 줘야 하는 경우가 있는데 이 때 제대로 지정해주지 않으면 호스트 시스템의 dynamic linker 가 적용되게 되고 타겟 시스템에서 실행시 해당 시스템의 dynamic linker 와 상이한 path 를 찾게 되어 그러한 에러가 나더군요.
readelf -l a.out
INTERP 0x0000000000000238 0x0000000000400238 0x0000000000400238
0x000000000000001c 0x000000000000001c R 1
[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]
Thanks for being one of those who care for people and mankind.
I'd like to be one of those as well.
자답
64bit 환경에서 32bit 실행파일을 실행시킬시 이런 에러가 날 수 있군요 -_-;
이 경우 우분투 기준으로 ia32-libs 설치하면
이 경우 우분투 기준으로 ia32-libs 설치하면 됩니다.
실행파일의 .interp 섹션에 명시된 dynamic
실행파일의 .interp 섹션에 명시된 dynamic linker 가 시스템에 존재하지 않아서 동적 링킹을 할 수 없을 때 이런 에러가 나기도 합니다.
제 경험에 의하면 크로스 컴파일을 할 때 dynamic linker 를 명시해 줘야 하는 경우가 있는데 이 때 제대로 지정해주지 않으면 호스트 시스템의 dynamic linker 가 적용되게 되고 타겟 시스템에서 실행시 해당 시스템의 dynamic linker 와 상이한 path 를 찾게 되어 그러한 에러가 나더군요.
Thanks for being one of those who care for people and mankind.
I'd like to be one of those as well.
댓글 달기