단순 실행 파일을 실행할 수 없습니다.
결과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
대로 단 한 사람만이 작업을 수행합니다 .Slackware
http://docs.slackware.com/slackware:multilib.