우분투 9.10 x86_64에 바이너리 리눅스 응용 프로그램을 설치하고있었습니다. 앱은 이전 버전의 gzip (1.2.4)과 함께 제공되었으며 훨씬 오래된 커널 용으로 컴파일되었습니다.
$ file gzip
gzip: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.0.0, stripped
이 프로그램을 실행할 수 없었습니다. 내가 시도하면 이런 일이 일어났다 :
$ ./gzip
-bash: ./gzip: No such file or directory
ldd도이 바이너리에 대해 불만족했습니다.
$ ldd gzip
not a dynamic executable
궁금합니다.이 문제의 원인은 무엇입니까? 손상된 파일? 아니면 훨씬 오래된 {kernel, libc, …}를 위해 빌드 된 바이너리 비 호환성입니까?
Nos의 제안에 따르면 다음과 같은 결과가 나옵니다 strace ./gzip
.
execve("./gzip", ["./gzip"], [/* 24 vars */]) = -1 ENOENT (No such file or directory)
dup(2) = 3
fcntl(3, F_GETFL) = 0x8002 (flags O_RDWR|O_LARGEFILE)
fstat(3, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 10), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fa8c9eee000
lseek(3, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
write(3, "strace: exec: No such file or di"..., 40strace: exec: No such file or directory
) = 40
close(3) = 0
munmap(0x7fa8c9eee000, 4096) = 0
exit_group(1) = ?
출력은 다음과 같습니다 readelf -a ./gzip
.
ELF Header:
Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
Class: ELF32
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
Type: EXEC (Executable file)
Machine: Intel 80386
Version: 0x1
Entry point address: 0x8048d20
Start of program headers: 52 (bytes into file)
Start of section headers: 46852 (bytes into file)
Flags: 0x0
Size of this header: 52 (bytes)
Size of program headers: 32 (bytes)
Number of program headers: 6
Size of section headers: 40 (bytes)
Number of section headers: 26
Section header string table index: 25
Section Headers:
[Nr] Name Type Addr Off Size ES Flg Lk Inf Al
[ 0] NULL 00000000 000000 000000 00 0 0 0
[ 1] .interp PROGBITS 080480f4 0000f4 000013 00 A 0 0 1
[ 2] .note.ABI-tag NOTE 08048108 000108 000020 00 A 0 0 4
[ 3] .hash HASH 08048128 000128 000178 04 A 4 0 4
[ 4] .dynsym DYNSYM 080482a0 0002a0 000370 10 A 5 1 4
[ 5] .dynstr STRTAB 08048610 000610 0001ee 00 A 0 0 1
[ 6] .gnu.version VERSYM 080487fe 0007fe 00006e 02 A 4 0 2
[ 7] .gnu.version_r VERNEED 0804886c 00086c 000030 00 A 5 1 4
[ 8] .rel.got REL 0804889c 00089c 000008 08 A 4 20 4
[ 9] .rel.bss REL 080488a4 0008a4 000030 08 A 4 22 4
[10] .rel.plt REL 080488d4 0008d4 000158 08 A 4 12 4
[11] .init PROGBITS 08048a2c 000a2c 00002f 00 AX 0 0 4
[12] .plt PROGBITS 08048a5c 000a5c 0002c0 04 AX 0 0 4
[13] .text PROGBITS 08048d20 000d20 007f4c 00 AX 0 0 16
[14] .fini PROGBITS 08050c6c 008c6c 00001a 00 AX 0 0 4
[15] .rodata PROGBITS 08050ca0 008ca0 001751 00 A 0 0 32
[16] .data PROGBITS 08053400 00a400 000ab4 00 WA 0 0 32
[17] .eh_frame PROGBITS 08053eb4 00aeb4 000004 00 WA 0 0 4
[18] .ctors PROGBITS 08053eb8 00aeb8 000008 00 WA 0 0 4
[19] .dtors PROGBITS 08053ec0 00aec0 000008 00 WA 0 0 4
[20] .got PROGBITS 08053ec8 00aec8 0000bc 04 WA 0 0 4
[21] .dynamic DYNAMIC 08053f84 00af84 0000a0 08 WA 5 0 4
[22] .bss NOBITS 08054040 00b040 050630 00 WA 0 0 32
[23] .comment PROGBITS 00000000 00b040 000487 00 0 0 1
[24] .note NOTE 00000487 00b4c7 00017c 00 0 0 1
[25] .shstrtab STRTAB 00000000 00b643 0000be 00 0 0 1
Key to Flags:
W (write), A (alloc), X (execute), M (merge), S (strings)
I (info), L (link order), G (group), x (unknown)
O (extra OS processing required) o (OS specific), p (processor specific)
There are no section groups in this file.
Program Headers:
Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
PHDR 0x000034 0x08048034 0x08048034 0x000c0 0x000c0 R E 0x4
INTERP 0x0000f4 0x080480f4 0x080480f4 0x00013 0x00013 R 0x1
[Requesting program interpreter: /lib/ld-linux.so.2]
LOAD 0x000000 0x08048000 0x08048000 0x0a3f1 0x0a3f1 R E 0x1000
LOAD 0x00a400 0x08053400 0x08053400 0x00c24 0x51270 RW 0x1000
DYNAMIC 0x00af84 0x08053f84 0x08053f84 0x000a0 0x000a0 RW 0x4
NOTE 0x000108 0x08048108 0x08048108 0x00020 0x00020 R 0x4
Section to Segment mapping:
Segment Sections...
00
01 .interp
02 .interp .note.ABI-tag .hash .dynsym .dynstr .gnu.version .gnu.version_r .rel.got .rel.bss .rel.plt .init .plt .text .fini .rodata
03 .data .eh_frame .ctors .dtors .got .dynamic .bss
04 .dynamic
05 .note.ABI-tag
Dynamic section at offset 0xaf84 contains 20 entries:
Tag Type Name/Value
0x00000001 (NEEDED) Shared library: [libc.so.6]
0x0000000c (INIT) 0x8048a2c
0x0000000d (FINI) 0x8050c6c
0x00000004 (HASH) 0x8048128
0x00000005 (STRTAB) 0x8048610
0x00000006 (SYMTAB) 0x80482a0
0x0000000a (STRSZ) 474 (bytes)
0x0000000b (SYMENT) 16 (bytes)
0x00000015 (DEBUG) 0x0
0x00000003 (PLTGOT) 0x8053ec8
0x00000002 (PLTRELSZ) 344 (bytes)
0x00000014 (PLTREL) REL
0x00000017 (JMPREL) 0x80488d4
0x00000011 (REL) 0x804889c
0x00000012 (RELSZ) 56 (bytes)
0x00000013 (RELENT) 8 (bytes)
0x6ffffffe (VERNEED) 0x804886c
0x6fffffff (VERNEEDNUM) 1
0x6ffffff0 (VERSYM) 0x80487fe
0x00000000 (NULL) 0x0
Relocation section '.rel.got' at offset 0x89c contains 1 entries:
Offset Info Type Sym.Value Sym. Name
08053f80 00000106 R_386_GLOB_DAT 00000000 __gmon_start__
Relocation section '.rel.bss' at offset 0x8a4 contains 6 entries:
Offset Info Type Sym.Value Sym. Name
08054040 00000505 R_386_COPY 08054040 stdout
08054044 00002705 R_386_COPY 08054044 stderr
08054048 00000805 R_386_COPY 08054048 __ctype_b
0805404c 00001f05 R_386_COPY 0805404c stdin
08054050 00001005 R_386_COPY 08054050 optarg
08054054 00001e05 R_386_COPY 08054054 optind
Relocation section '.rel.plt' at offset 0x8d4 contains 43 entries:
Offset Info Type Sym.Value Sym. Name
08053ed4 00000307 R_386_JUMP_SLOT 08048a6c chown
08053ed8 00003407 R_386_JUMP_SLOT 08048a7c __register_frame_info
08053edc 00001907 R_386_JUMP_SLOT 08048a8c write
08053ee0 00002e07 R_386_JUMP_SLOT 08048a9c fileno
08053ee4 00002607 R_386_JUMP_SLOT 08048aac strcmp
08053ee8 00003507 R_386_JUMP_SLOT 08048abc close
08053eec 00000d07 R_386_JUMP_SLOT 08048acc perror
08053ef0 00001a07 R_386_JUMP_SLOT 08048adc fprintf
08053ef4 00000907 R_386_JUMP_SLOT 08048aec getenv
08053ef8 00002007 R_386_JUMP_SLOT 08048afc signal
08053efc 00001207 R_386_JUMP_SLOT 08048b0c fflush
08053f00 00002407 R_386_JUMP_SLOT 08048b1c unlink
08053f04 00002a07 R_386_JUMP_SLOT 08048b2c __errno_location
08053f08 00001407 R_386_JUMP_SLOT 08048b3c chmod
08053f0c 00000e07 R_386_JUMP_SLOT 08048b4c malloc
08053f10 00001d07 R_386_JUMP_SLOT 08048b5c __deregister_frame_inf
08053f14 00002907 R_386_JUMP_SLOT 08048b6c __xstat
08053f18 00000b07 R_386_JUMP_SLOT 08048b7c fgets
08053f1c 00002c07 R_386_JUMP_SLOT 08048b8c __fxstat
08053f20 00001507 R_386_JUMP_SLOT 08048b9c __lxstat
08053f24 00000a07 R_386_JUMP_SLOT 08048bac __strtol_internal
08053f28 00002207 R_386_JUMP_SLOT 08048bbc strncmp
08053f2c 00003007 R_386_JUMP_SLOT 08048bcc __libc_start_main
08053f30 00001c07 R_386_JUMP_SLOT 08048bdc strcat
08053f34 00000407 R_386_JUMP_SLOT 08048bec printf
08053f38 00001307 R_386_JUMP_SLOT 08048bfc lseek
08053f3c 00000c07 R_386_JUMP_SLOT 08048c0c memcpy
08053f40 00001607 R_386_JUMP_SLOT 08048c1c strrchr
08053f44 00001b07 R_386_JUMP_SLOT 08048c2c ctime
08053f48 00000707 R_386_JUMP_SLOT 08048c3c getopt_long
08053f4c 00003207 R_386_JUMP_SLOT 08048c4c closedir
08053f50 00002507 R_386_JUMP_SLOT 08048c5c opendir
08053f54 00003107 R_386_JUMP_SLOT 08048c6c open
08053f58 00002b07 R_386_JUMP_SLOT 08048c7c exit
08053f5c 00001807 R_386_JUMP_SLOT 08048c8c calloc
08053f60 00002d07 R_386_JUMP_SLOT 08048c9c _IO_putc
08053f64 00003607 R_386_JUMP_SLOT 08048cac free
08053f68 00000607 R_386_JUMP_SLOT 08048cbc utime
08053f6c 00000f07 R_386_JUMP_SLOT 08048ccc isatty
08053f70 00002307 R_386_JUMP_SLOT 08048cdc strncpy
08053f74 00001107 R_386_JUMP_SLOT 08048cec readdir
08053f78 00002107 R_386_JUMP_SLOT 08048cfc read
08053f7c 00000207 R_386_JUMP_SLOT 08048d0c strcpy
There are no unwind sections in this file.
Symbol table '.dynsym' contains 55 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 00000000 0 NOTYPE LOCAL DEFAULT UND
1: 00000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__
2: 08048d0c 34 FUNC GLOBAL DEFAULT UND strcpy@GLIBC_2.0 (3)
3: 08048a6c 136 FUNC GLOBAL DEFAULT UND chown@GLIBC_2.1 (2)
4: 08048bec 41 FUNC GLOBAL DEFAULT UND printf@GLIBC_2.0 (3)
5: 08054040 4 OBJECT GLOBAL DEFAULT 22 stdout@GLIBC_2.0 (3)
6: 08048cbc 59 FUNC GLOBAL DEFAULT UND utime@GLIBC_2.0 (3)
7: 08048c3c 43 FUNC GLOBAL DEFAULT UND getopt_long@GLIBC_2.0 (3)
8: 08054048 4 OBJECT GLOBAL DEFAULT 22 __ctype_b@GLIBC_2.0 (3)
9: 08048aec 224 FUNC GLOBAL DEFAULT UND getenv@GLIBC_2.0 (3)
10: 08048bac 1106 FUNC GLOBAL DEFAULT UND __strtol_internal@GLIBC_2.0 (3)
11: 08048b7c 202 FUNC WEAK DEFAULT UND fgets@GLIBC_2.0 (3)
12: 08048c0c 62 FUNC GLOBAL DEFAULT UND memcpy@GLIBC_2.0 (3)
13: 08048acc 111 FUNC GLOBAL DEFAULT UND perror@GLIBC_2.0 (3)
14: 08048b4c 338 FUNC WEAK DEFAULT UND malloc@GLIBC_2.0 (3)
15: 08048ccc 46 FUNC WEAK DEFAULT UND isatty@GLIBC_2.0 (3)
16: 08054050 4 OBJECT GLOBAL DEFAULT 22 optarg@GLIBC_2.0 (3)
17: 08048cec 142 FUNC WEAK DEFAULT UND readdir@GLIBC_2.0 (3)
18: 08048b0c 152 FUNC WEAK DEFAULT UND fflush@GLIBC_2.0 (3)
19: 08048bfc 61 FUNC WEAK DEFAULT UND lseek@GLIBC_2.0 (3)
20: 08048b3c 59 FUNC WEAK DEFAULT UND chmod@GLIBC_2.0 (3)
21: 08048b9c 314 FUNC GLOBAL DEFAULT UND __lxstat@GLIBC_2.0 (3)
22: 08048c1c 441 FUNC GLOBAL DEFAULT UND strrchr@GLIBC_2.0 (3)
23: 0804f608 29 FUNC GLOBAL DEFAULT 13 basename
24: 08048c8c 563 FUNC WEAK DEFAULT UND calloc@GLIBC_2.0 (3)
25: 08048a8c 61 FUNC WEAK DEFAULT UND write@GLIBC_2.0 (3)
26: 08048adc 36 FUNC GLOBAL DEFAULT UND fprintf@GLIBC_2.0 (3)
27: 08048c2c 35 FUNC GLOBAL DEFAULT UND ctime@GLIBC_2.0 (3)
28: 08048bdc 49 FUNC GLOBAL DEFAULT UND strcat@GLIBC_2.0 (3)
29: 08048b5c 162 FUNC WEAK DEFAULT UND __deregister_frame_info@GLIBC_2.0 (3)
30: 08054054 4 OBJECT GLOBAL DEFAULT 22 optind@GLIBC_2.0 (3)
31: 0805404c 4 OBJECT GLOBAL DEFAULT 22 stdin@GLIBC_2.0 (3)
32: 08048afc 181 FUNC WEAK DEFAULT UND signal@GLIBC_2.0 (3)
33: 08048cfc 61 FUNC WEAK DEFAULT UND read@GLIBC_2.0 (3)
34: 08048bbc 148 FUNC GLOBAL DEFAULT UND strncmp@GLIBC_2.0 (3)
35: 08048cdc 147 FUNC GLOBAL DEFAULT UND strncpy@GLIBC_2.0 (3)
36: 08048b1c 55 FUNC WEAK DEFAULT UND unlink@GLIBC_2.0 (3)
37: 08048c5c 412 FUNC WEAK DEFAULT UND opendir@GLIBC_2.0 (3)
38: 08048aac 58 FUNC GLOBAL DEFAULT UND strcmp@GLIBC_2.0 (3)
39: 08054044 4 OBJECT GLOBAL DEFAULT 22 stderr@GLIBC_2.0 (3)
40: 0804f7fc 40 FUNC GLOBAL DEFAULT 13 error
41: 08048b6c 314 FUNC GLOBAL DEFAULT UND __xstat@GLIBC_2.0 (3)
42: 08048b2c 27 FUNC WEAK DEFAULT UND __errno_location@GLIBC_2.0 (3)
43: 08048c7c 200 FUNC GLOBAL DEFAULT UND exit@GLIBC_2.0 (3)
44: 08048b8c 314 FUNC GLOBAL DEFAULT UND __fxstat@GLIBC_2.0 (3)
45: 08048c9c 150 FUNC GLOBAL DEFAULT UND _IO_putc@GLIBC_2.0 (3)
46: 08048a9c 53 FUNC GLOBAL DEFAULT UND fileno@GLIBC_2.0 (3)
47: 08050ca4 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used
48: 08048bcc 261 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.0 (3)
49: 08048c6c 61 FUNC WEAK DEFAULT UND open@GLIBC_2.0 (3)
50: 08048c4c 112 FUNC WEAK DEFAULT UND closedir@GLIBC_2.0 (3)
51: 0804f824 66 FUNC GLOBAL DEFAULT 13 warn
52: 08048a7c 116 FUNC WEAK DEFAULT UND __register_frame_info@GLIBC_2.0 (3)
53: 08048abc 55 FUNC WEAK DEFAULT UND close@GLIBC_2.0 (3)
54: 08048cac 202 FUNC WEAK DEFAULT UND free@GLIBC_2.0 (3)
Histogram for bucket list length (total of 37 buckets):
Length Number % of total Coverage
0 10 ( 27.0%)
1 14 ( 37.8%) 25.9%
2 4 ( 10.8%) 40.7%
3 4 ( 10.8%) 63.0%
4 5 ( 13.5%) 100.0%
Version symbols section '.gnu.version' contains 55 entries:
Addr: 00000000080487fe Offset: 0x0007fe Link: 4 (.dynsym)
000: 0 (*local*) 0 (*local*) 3 (GLIBC_2.0) 2 (GLIBC_2.1)
004: 3 (GLIBC_2.0) 3 (GLIBC_2.0) 3 (GLIBC_2.0) 3 (GLIBC_2.0)
008: 3 (GLIBC_2.0) 3 (GLIBC_2.0) 3 (GLIBC_2.0) 3 (GLIBC_2.0)
00c: 3 (GLIBC_2.0) 3 (GLIBC_2.0) 3 (GLIBC_2.0) 3 (GLIBC_2.0)
010: 3 (GLIBC_2.0) 3 (GLIBC_2.0) 3 (GLIBC_2.0) 3 (GLIBC_2.0)
014: 3 (GLIBC_2.0) 3 (GLIBC_2.0) 3 (GLIBC_2.0) 1 (*global*)
018: 3 (GLIBC_2.0) 3 (GLIBC_2.0) 3 (GLIBC_2.0) 3 (GLIBC_2.0)
01c: 3 (GLIBC_2.0) 3 (GLIBC_2.0) 3 (GLIBC_2.0) 3 (GLIBC_2.0)
020: 3 (GLIBC_2.0) 3 (GLIBC_2.0) 3 (GLIBC_2.0) 3 (GLIBC_2.0)
024: 3 (GLIBC_2.0) 3 (GLIBC_2.0) 3 (GLIBC_2.0) 3 (GLIBC_2.0)
028: 1 (*global*) 3 (GLIBC_2.0) 3 (GLIBC_2.0) 3 (GLIBC_2.0)
02c: 3 (GLIBC_2.0) 3 (GLIBC_2.0) 3 (GLIBC_2.0) 1 (*global*)
030: 3 (GLIBC_2.0) 3 (GLIBC_2.0) 3 (GLIBC_2.0) 1 (*global*)
034: 3 (GLIBC_2.0) 3 (GLIBC_2.0) 3 (GLIBC_2.0)
Version needs section '.gnu.version_r' contains 1 entries:
Addr: 0x000000000804886c Offset: 0x00086c Link: 5 (.dynstr)
000000: Version: 1 File: libc.so.6 Cnt: 2
0x0010: Name: GLIBC_2.0 Flags: none Version: 3
0x0020: Name: GLIBC_2.1 Flags: none Version: 2
Notes at offset 0x00000108 with length 0x00000020:
Owner Data size Description
GNU 0x00000010 NT_GNU_ABI_TAG (ABI version tag)
Notes at offset 0x0000b4c7 with length 0x0000017c:
Owner Data size Description
01.01 0x00000000 NT_VERSION (version)
01.01 0x00000000 NT_VERSION (version)
01.01 0x00000000 NT_VERSION (version)
01.01 0x00000000 NT_VERSION (version)
01.01 0x00000000 NT_VERSION (version)
01.01 0x00000000 NT_VERSION (version)
01.01 0x00000000 NT_VERSION (version)
01.01 0x00000000 NT_VERSION (version)
01.01 0x00000000 NT_VERSION (version)
01.01 0x00000000 NT_VERSION (version)
01.01 0x00000000 NT_VERSION (version)
01.01 0x00000000 NT_VERSION (version)
01.01 0x00000000 NT_VERSION (version)
01.01 0x00000000 NT_VERSION (version)
01.01 0x00000000 NT_VERSION (version)
01.01 0x00000000 NT_VERSION (version)
01.01 0x00000000 NT_VERSION (version)
01.01 0x00000000 NT_VERSION (version)
01.01 0x00000000 NT_VERSION (version)
답변
대답은 readelf -a
원래 질문 의 출력 결과에 있습니다.
[Requesting program interpreter: /lib/ld-linux.so.2]
32 비트 앱을 실행하는 데 필요한 /lib/ld-linux.so.2 파일이 없습니다. 이 파일이있는 Ubuntu 패키지는 libc6-i386입니다.
답변
오래된 질문이지만 희망적으로 이것은 다른 사람을 도울 것입니다.
필자의 경우 우분투 10.04에 빌드 된 우분투 12.04에서 툴체인을 사용하고있었습니다 (구체적으로 GCC 4.1이 필요합니다). 대부분의 라이브러리가 다중 아치 디렉토리로 이동함에 따라 ld.so를 찾을 수 없습니다. 따라서 심볼릭 링크를 만드십시오.
필요한 경로를 확인하십시오.
$ readelf -arm-linux-gnueabi-gcc | grep 통역사 : [프로그램 인터프리터 요청 : /lib/ld-linux-x86-64.so.2]
심볼릭 링크 생성
$ sudo ln -s /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 /lib/ld-linux-x86-64.so.2
32 비트를 사용하는 경우 x86_64-linux-gnu가 아니라 i386-linux-gnu가됩니다.
답변
64 비트 Linux에서 32 비트 빌드를 실행하려고하면이 오류가 발생합니다.
또한 file
시도한 바이너리 (예 : 32 비트)에 대해 말한 내용과 당신이 얻는 것과 대조 하십시오 /bin/gzip
.
$ file /bin/gzip
/bin/gzip: ELF 64-bit LSB executable, x64-64, version 1 (SYSV), \
dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped
이것은 amd64 aka x86_64 용 Ubuntu 9.10에서 얻는 것입니다.
편집 : 확장 된 게시물은 readelf
출력에 32 비트 빌드도 반영 한다는 것을 보여줍니다 .
답변
나는 당신이 x86-64 설치에 i386 런타임 링커가 없다고 생각합니다. ENOENT는 아마도 OS가 /lib/ld.so.1 또는 이와 유사한 것을 찾고 있기 때문일 것입니다. 이것은 일반적으로 32 비트 glibc 런타임의 일부이며, 우분투에 직접 익숙하지는 않지만 설치할 32 비트 호환성 패키지가 있다고 가정합니다. 다행히도 gzip은 C 라이브러리에만 의존하므로 설치하기 만하면됩니다.
답변
readelf -xxx
INTERP
0x0000000000000238 0x0000000000400238 0x0000000000400238
0x000000000000001c 0x000000000000001c R 1
[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]
답변
실행 파일이 정적으로 링크되어있을 수 있으므로 ldd gzip
링크가 표시되지 않기 때문입니다. 라이브러리가 정적으로 연결되어 있으면 호환되지 않는지 여부를 모릅니다. 있을 것으로 예상됩니다.
나는 그것이 가장 명백한 일이라는 것을 알고 있으며, 당신이 해냈다 고 확신하지만 chmod +x ./gzip
그렇습니다. 그러한 파일이나 디렉토리는 수행되지 않은 전형적인 증상이 아니므로 언급 한 것입니다.
답변
프로그램 인터프리터가 /lib/ld-linux.so.2 였기 때문에 문제가 있었지만 내장 장치에 있었기 때문에 gcc에게 ls-uClibc를 대신 사용하도록 요청하여 문제를 해결했습니다.
-Wl,--dynamic-linker=/lib/ld-uClibc.so.0