Linux에서 Steam이 설치된 게임을 시작할 때 잘못된 ELF 클래스가 발생함: ELFCLASS32

Linux에서 Steam이 설치된 게임을 시작할 때 잘못된 ELF 클래스가 발생함: ELFCLASS32

Linux 우분투 18.04의 Steam 스토어에서 "Counter Strike Global Offensive"를 설치했지만 터미널에서 실행하면 아래와 같이 많은 오류가 발생합니다.

Steam/steamapps/common/Counter-Strike Global Offensive/bin/datacache_client.so

error=Steam/steamapps/common/Counter-Strike Global Offensive/bin/datacache_client.so: wrong ELF class: ELFCLASS32

답변된 질문을 통해 이미 32비트 공유 개체를 설치해야 한다는 것을 알고 있지만 대부분의 라이브러리(모두는 아니지만)는 리포지토리에서 사용할 수 없으며 게임 개발자가 만든 것입니다.

이러한 오류를 억제하려면 어떻게 해야 하는지 궁금합니다.
그리고 Steam 앱에서 직접 실행할 수 없습니다.
당신의 도움을 주셔서 감사합니다.
감사해요.

답변1

"이러한 오류를 억제"할 수는 없습니다. 실행 가능한 바이너리와 필요한 모든 라이브러리는 모두 64비트이거나 모두 32비트여야 합니다. 애플리케이션을 실행하려면 필요한 모든 라이브러리의 올바른 버전을 제공해야 합니다.

시스템이 64비트이고 이전에 32비트 라이브러리를 설치하지 않은 경우 패키지 관리 시스템에서 32비트 아키텍처 지원을 활성화해야 할 수 있습니다.

sudo dpkg --add-architecture i386

저장소 정의에 대한 파일을 /etc/apt/sources.list확인할 수도 있습니다 . /etc/apt/sources.list.d/*.list스키마 사양에 주석 처리되지 않은 줄이 있는 경우 다음과 같습니다.

deb [arch=amd64] https://...

그런 다음 패키지 저장소 액세스를 64비트 버전으로만 제한하는 "[arch=amd64]" 섹션을 제거할 수 있습니다.

그런 다음 또는 동등한 명령을 실행하여 사용 가능한 패키지 목록을 새로 고치면 해당 64비트 패키지와 이름은 동일하지만 뒤에 패키지 이름이 접미사로 붙은 sudo apt update라이브러리 패키지의 32비트 버전을 선택할 수 있습니다. :i386.

답변2

마지막으로 게임의 루트 디렉터리 bin/에 있는 모든 32비트 공유 개체를 (일시적으로) 삭제하면 문제가 해결되었습니다. 저는 이것이 게임 자체의 잘못이라고 생각합니다.
또한 대부분의 라이브러리는 이 게임 전용 공유 개체이기 때문에 저장소에서 설치할 수 없습니다.

관련 정보