На этот вопрос уже есть ответ здесь:
Почему bash утверждает, что файл не существует, если он явно делает?
$ ls -l a
-r-x------ 1 configurator configurator 3904 Dec 7 10:36 a
$ file a
a: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.2.5, stripped
$ ./a
-bash: ./a: No such file or directory
Вы получаете эту ошибку, потому что вы пытаетесь запустить 32-битный исполняемый файл в 64-битной операционной системе.
И сообщение No such file or directory
не относится к вашему исполняемому файлу с именем a
. Вместо этого ошибка относится к вспомогательной программе , которая необходима для запуска 32-разрядного динамически связанного исполняемого файла a
.
Вы можете найти больше информации о статической и динамической связи в этом ответе .
Проблема, скорее всего, не в файле, который вы пытаетесь запустить, а в файле, от которого он зависит. Запустите ldd
для файла, чтобы увидеть, не может ли быть найдена какая-либо из его зависимостей.