Quais são todos os possíveis motivos pelos quais o shell responderia com "não encontrado" ao tentar executar um executável?
- O executável definitivamente existe e possui permissão de execução (
chmod +x
). ldd
indica que todas as dependências estão presentes.- file indica que o executável foi compilado para a arquitetura correta (não há razão para que não deva ser, ele é compilado junto com o resto do sistema em uma compilação do Yocto).
Que outras razões poderiam haver?
Dado um binário com permissões executáveis, um motivo comum para mensagens de erro “não encontrado” é que o carregador dinâmico solicitado pelo binário não existe. Você pode verificar isso usando
readelf
:Se esse interpretador não existir, o executável não será executado com um erro “não encontrado”. Consulte Obtendo a mensagem "Não encontrado" ao executar um binário de 32 bits em um sistema de 64 bits para obter detalhes.