프로그램을 실행하면 "해당 파일이나 폴더가 없습니다"라는 오류가 발생합니다.

프로그램을 실행하면 "해당 파일이나 폴더가 없습니다"라는 오류가 발생합니다.

단순 실행 파일을 실행할 수 없습니다.

결과ll

user@user-SATELLITE-C855-169:~/Bureau/Workspace/buildroot/buildroot/output/host/opt/ext-toolchain/bin$ ll
total 16948
drwxr-xr-x 2 user user    4096 avril 18  2014 ./
drwxr-xr-x 8 user user    4096 janv. 18 21:01 ../
-rwxr-xr-x 1 user user  565152 avril 18  2014 armv5-ctng-linux-gnueabi-addr2line*
-rwxr-xr-x 2 user user  589764 avril 18  2014 armv5-ctng-linux-gnueabi-ar*
-rwxr-xr-x 2 user user 1035780 avril 18  2014 armv5-ctng-linux-gnueabi-as*
-rwxr-xr-x 2 user user  624784 avril 18  2014 armv5-ctng-linux-gnueabi-c++*
lrwxrwxrwx 1 user user      28 avril 18  2014 armv5-ctng-linux-gnueabi-cc -> armv5-ctng-linux-gnueabi-gcc*
-rwxr-xr-x 1 user user  563424 avril 18  2014 armv5-ctng-linux-gnueabi-c++filt*

이것이 내가 실행하는 방법이다armv5-ctng-linux-gnueabi-ar

user@user-SATELLITE-C855-169:~/Bureau/Workspace/buildroot/buildroot/output/host/opt/ext-toolchain/bin$ ./armv5-ctng-linux-gnueabi-ar

이것은

No such file or folder

각 파일 끝에 있는 *는 무엇을 의미합니까? 특별한 것이 있습니까?

편집하다

@Arkadiusz Drabczyk이 제안한 Manip:

user@user-SATELLITE-C855-169:~/Bureau/Workspace/buildroot/buildroot/output/host/opt/ext-toolchain/bin$ readelf -a armv5-ctng-linux-gnueabi-ar | grep "Requesting program interpreter:"
  [Requesting program interpreter: /lib/ld-linux.so.2]

@steeldriver가 지원하는 Manip:

user@user-SATELLITE-C855-169:~/Bureau/Workspace/buildroot/buildroot/output/host/opt/ext-toolchain/bin$ arch
x86_64

저는 64비트 운영 체제를 사용하고 있습니다.

user@user-SATELLITE-C855-169:~/Bureau/Workspace/buildroot/buildroot/output/host/opt/ext-toolchain/bin$ file armv5-ctng-linux-gnueabi-ar
armv5-ctng-linux-gnueabi-ar: ELF 32-bit LSB  executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, BuildID[sha1]=8dac66869f5be2dbb2bee517e289901c4be80db5, stripped

바이너리는 32비트 아키텍처용인 것으로 보입니다 ELF 32-bit.

답변1

도와주세요. 각 파일 끝에 있는 *는 무엇을 의미하나요? 특별한 것이 있나요?

별칭 에는 파일 이름 뒤에 문자를 추가하는 옵션이 ll포함될 수 있습니다 . -F에서 man ls:

   -F, --classify
          append indicator (one of */=>@|) to entries

많은 셸에서 bash명령을 사용하여 별칭이 어떻게 확장되는지 확인할 수 있습니다 type. 예를 들어 내 시스템에서는 다음과 같습니다.

$ type ll ll is aliased to 'ls -Alhtr --color'

이제 오류를 발생시키는 파일이 바이너리 파일이므로 잘못된 로더로 인해 발생할 수 있다고 말합니다. 요청한 로더를 사용해보고 해당 로더가 있는지 확인하세요.

$ readelf -a armv5-ctng-linux-gnueabi-ar | grep "Requesting program interpreter:"

바이너리가 x32시스템에서 실행되도록 지정된 경우 x32인터프리터를 요청합니다 /lib. 그렇지 않으면 부팅되지 않습니다. 따라서 이제 사용 중인 시스템에 따라 시스템에 32비트 호환성 레이어를 추가하는 방법을 찾아야 합니다. 예를 들어, Ubuntu간단합니다. 아래 설명된 apt-get install대로 단 한 사람만이 작업을 수행합니다 .Slackwarehttp://docs.slackware.com/slackware:multilib.

관련 정보