Я пытаюсь скомпилировать прошивку для моего linksys WRVS4400N.
ls
показывает, что существует, но когда он пытается запустить его, bash говорит, что его не существует. Я также могу cat
, и это исполняемый файл, а не сценарий оболочки.
bash
arch-linux
Avery3R
источник
источник
Ответы:
Вы упомянули о том , что выход
file mkdep
есть32-bit elf
. Вы используете 64-битную виртуальную машину.Пример:
Просто создайте новую 32-битную виртуальную машину и скомпилируйте ее там.
источник
Это установлено для того, чтобы быть исполняемым? Если нет, тогда
chmod +x filename
. Это в вашем ПУТИ? Если нет, то называйте это./filename
скорее, чем простоfilename
.источник
Когда вы пытаетесь выполнить файл, и bash говорит, что он не существует, иногда это означает, что bash считает, что файл является скриптом, а интерпретатор, указанный в первой строке (#!), Не существует.
Если файлы названы,
mkdep
я бы опубликовал выводКоманда strace выдает информацию о выполненных системных вызовах, например,
strace ls 2>ls.t
помещает в ls.t следующееисточник
strace ./mkdep 2>mkdep.strace.txt
это дать вам некоторое представление о том, что происходит. Вам может понадобиться установить strace из репозиториев.Вы меняете IFS в своем сценарии? Я тоже столкнулся с той же проблемой в одном из моих сценариев и думал так же (32-битный файл читается сценарием оболочки на 64-битной машине). Но это не проблема в моем случае. Вместо этого я поменял IFS на запятую ',' и вернулся к новой строке, которая каким-то образом запутала синтаксический анализатор и вызвала эту ошибку.
Я только что удалил все изменения в IFS, и теперь он работает просто отлично !!!
источник