Pode ser uma dependência ausente. Notavelmente, você obterá esse tipo de mensagem se o vinculador de tempo de execução ("intérprete de programa") definido no cabeçalho ELF
não existir em seu sistema.
Para verificar isso, execute:
readelf -l your_executable|grep "program interpreter"
Se o que ele der a você não existir em seu sistema, ou tiver dependências ausentes (verifique com ldd
), você receberá essa mensagem de erro estranha.
Demo:
$ gcc -o test t.c
$ readelf -l test|grep "program interpreter"
[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]
$ ./test
hello!
$ gcc -Wl,--dynamic-linker -Wl,/i/dont/exist.so -o test t.c
$ readelf -l test|grep "program interpreter"
[Requesting program interpreter: /i/dont/exist.so]
$ ./test
bash: ./test: No such file or directory