, , , .
gcc -c a.c; ld -lc a.o, , :
ld: warning: cannot find entry symbol _start; defaulting to 0000000000400260
, , , , . . @EmployedRussian answer , .
, , :
$ strace ./a.out
execve("./a.out", ["./a.out"], []) = -1 ENOENT (No such file or directory)
execve(2) ENOENT, ( file .., . ). ,
#!/usr/non-existant-path/bin/bash
, ELF (, 64- 32- ). , .
Ubuntu 15.10, GNU file 5.22:
a.out: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib/ld64.so.1, not stripped
/lib/ld64.so.1. ldd , ldd ELF , , .
$ ldd a.out
linux-vdso.so.1 => (0x00007ffc18d2b000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f0e0a79f000)
/lib/ld64.so.1 => /lib64/ld-linux-x86-64.so.2 (0x0000559dbc9d2000)
, , , ldd, .
ldd, , , /lib64/ld-linux-x86-64.so.2 . - , , , , , , .
readelf -l a.out
ELF , . ( @EmployedRussian .)