Ubuntu 17.10에서 바이너리를 실행할 수 없습니다.

Ubuntu 17.10에서 바이너리를 실행할 수 없습니다.

GUI 및 명령줄에서 바이너리를 실행하는 데 문제가 있습니다. 우분투 17.10을 실행 중입니다. 로그는 다음과 같습니다.

julien@julien-PC:~/JEUX/ROMS/Logiciels/snes9x-1.53$ ls
data  docs  snes9x-gtk
julien@julien-PC:~/JEUX/ROMS/Logiciels/snes9x-1.53$ ./snes9x-gtk 
bash: ./snes9x-gtk: Aucun fichier ou dossier de ce type

추신: 마지막 줄은 프랑스어로 되어 있지만 "이 유형의 파일이나 디렉터리가 없음"을 의미합니다.

Humble Bundle에서 다운로드한 Super Meat Boy 설치 프로그램에서도 이 문제가 발생했습니다.

고쳐 쓰다: 을 사용하여 file다음을 수행했습니다.

julien@julien-PC:~/JEUX/ROMS/Logiciels/snes9x-1.53$ file ./snes9x-gtk 
./snes9x-gtk: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.9, not stripped

/lib/ld-linux.so.2 ./snes9x-gtk(통역사이기 때문에) 명령을 시도했지만 찾지 못했습니다. 인터넷에서 몇 가지 조사를 한 후 패키지에서 찾았고 lib32z1설치한 후 명령을 다시 시도하면 error while loading shared libraries: libX11.so.6: cannot open shared object file: No such file or directory. 내
명령을 출력으로 사용하여 :ldd

julien@julien-PC:~/JEUX/ROMS/Logiciels/snes9x-1.53$ ldd ./snes9x-gtk 
    linux-gate.so.1 =>  (0xf7f82000)
    libX11.so.6 => not found
    libdl.so.2 => /lib32/libdl.so.2 (0xf7f5b000)
    libXext.so.6 => not found
    libGL.so.1 => not found
    [...]
    libm.so.6 => /lib32/libm.so.6 (0xf7e54000)
    libgcc_s.so.1 => not found
    libc.so.6 => /lib32/libc.so.6 (0xf7c81000)
    /lib/ld-linux.so.2 (0xf7f84000)

누락된 종속성이 많이 있습니다...
libX11 및 libXext를 수정하려고 시도했지만 문제가 발생했습니다.
libX11이 패키지에 있다고 가정했지만 libx11-6설치하려고 하면 이미 설치되어 있다고 합니다. libXext는 package와 동일합니다 libxext-6.

추천 메뉴가 무엇인가요? 감사해요.

답변1

이는 32비트 바이너리입니다. Ubuntu 시스템에서 실행하려면 :i386패키지를 설치해야 합니다. 스키마 i386는 이미 활성화되어 있어야 하지만 만약을 대비해 다음을 실행하세요.

sudo dpkg --add-architecture i386
sudo apt update

그런 다음 누락된 라이브러리를 설치하고,예를 들어

sudo apt install libx11-6:i386 zlib1g:i386

기다리다. 필요한 라이브러리가 포함된 패키지를 찾으려면 다음을 설치하십시오 apt-file.

sudo apt install apt-file
sudo apt-file update
apt-file search libX11.so.6

답변2

먼저 파일이 무엇인지 확인하십시오.

file ./snes9x-gtk

그리고 시스템에 적합한 유형인지 확인하세요. 예를 들어, 32비트 시스템을 사용하는 경우 물론 다음은 실행되지 않습니다.

ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked...

유형이 올바른 경우 를 사용하여 조사해 보세요 ldd. 다음은 내가 팝업할 수 있었던 몇 가지 오류입니다.

$ ldd /usr/local/bin/tesseract
/usr/local/bin/tesseract: /usr/lib64/libstdc++.so.6: 
    version `GLIBCXX_3.4.11' not found 
    (required by /usr/local/lib/libtesseract_viewer.so.3)

$ ldd /usr/local/bin/qemu-system-x86_64
    ...
    libSDL-1.2.so.0 => not found
    ...

이 경우 누락된 라이브러리(예: 이 예에서는 SDL)를 설치하거나 최신 버전의 프로그램을 가져와야 합니다. 또는 소스에서 시스템에 다시 컴파일하십시오.

고쳐 쓰다: SNES ROM을 실행하려는 것 같은데요? SuperNintendo 이외의 시스템에서는 이 작업을 수행할 수 없습니다. 너 하나 필요해에뮬레이터ROM의 형식을 알려줍니다. 가능하다면 살펴보세요.여기.

관련 정보