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의 형식을 알려줍니다. 가능하다면 살펴보세요.여기.