다중 아키텍처를 지원하는 64비트 시스템에서 32비트 실행 파일을 실행할 수 없습니다.

다중 아키텍처를 지원하는 64비트 시스템에서 32비트 실행 파일을 실행할 수 없습니다.

Linux 시스템용 32비트 실행 파일을 컴파일했습니다. 대부분의 Linux 배포판에서 문제 없이 실행됩니다. 하지만 Ubuntu 16.04 LTS에서는 No such file or directory실행하려고 하면 오류가 발생합니다. 실행 파일은 모든 관련 권한이 설정된 디렉터리에 있습니다.

이 문제에 대한 해결책을 자세히 설명하는 몇 가지 답변이 있습니다(여기처럼). 그래서 나는 이렇게 했습니다:

  1. dpkg --print-architecture인쇄 amd64.
  2. dpkg --print-foreign-architectures인쇄 i386. 다중 아키텍처가 기본적으로 활성화되어 있어도 실행 파일이 작동하도록 할 수 없습니다.

이 실행 파일이 작동하려면 또 무엇을 설치/수행해야 합니까?

추신: ia32-libs가 시스템에 설치되어 있지 않습니다.

답변1

"해당 파일이나 디렉터리가 없습니다"는 파일이 존재하는 경우 나타나는 증상입니다.로더 누락. 귀하의 경우 64비트 시스템에서 32비트 바이너리를 사용하면 동적 로더가 누락됩니다 /lib/ld-linux.so.2.

다중 아키텍처를 활성화하면 64비트 시스템에 32비트 패키지를 설치할 수 있습니다. 그러나 실제로 32비트 실행 파일을 실행하려면 실제로 32비트 패키지를 설치해야 합니다. 최소한 설치해 보세요libc6:i386;동적 로더가 포함된 패키지입니다. 이 작업을 수행한 후에도 라이브러리 누락에 대한 오류가 계속 발생할 수 있으므로 필수 32비트 라이브러리 패키지( libFOO:i386)를 설치하십시오.

관련 정보