2015-12-22 2 views
0

Позвольте мне рассказать вам о моей проблеме. У меня есть сценарий оболочки, который выполняет исполняемый файл Linux. У меня нет доступа к исходному коду этого exe.Операционная система Linux на терминале cygwin

Когда я запускаю скрипт на машине Linux, проблем нет. Но, если я пытаюсь запустить сценарий на моем ноутбуке Windows, используя cygwin, у меня есть ошибка «невозможно выполнить двоичный файл».

Есть любое решение?

Спасибо!

+0

Вы должны сказать нам, что исполняемый файл. –

+0

информация, извлеченная из команды «файл»: ELF 32-разрядный исполняемый файл LSB для GNU/Linux 2.6.9 –

ответ

1

От https://stackoverflow.com/a/4144536/5704102:.

»... Cygwin представляет собой слой совместимости, который направлен на реализацию как можно больше из интерфейсов POSIX и Linux внутри Windows, это означает, что программы должны быть составлены специально для Cygwin. .. "

0

Как выглядит этот скрипт? Это сценарий bash? Если это так, вы можете попробовать sh <scriptfile> в Cygwin. Если это не работает, и это сценарий bash, убедитесь, что у вас есть sh.exe. Введите sh и дважды нажмите клавишу перехода, чтобы проверить.

Еще одна потенциальная проблема, если это сценарий bash, заключается в том, что у вас нет чего-то установленного, который Cygwin требует для запуска скрипта. Убедитесь, что все команды, которые скрипт пытается запустить, будут работать. Если нет, вам может потребоваться запустить установщик Cygwin и установить все необходимое для запуска скрипта.

Кроме того, вы можете проверить разрешения.

Если файл имеет расширение exe, он ДОЛЖЕН работать в Windows, если он не был скомпилирован для архитектуры с 64-разрядной архитектурой, и вы используете 32-разрядную ОС. В противном случае вы можете потерять некоторые файлы .dll, на которые опирается исполняемый файл.

Edit:

Если это содержимое вашего скрипта:

echo START 
/oper/file.exe 

то, скорее всего, у вас есть неправильный путь. Пути Cygwin обычно начинаются с /cygdrive/c/ в Windows. Перейдите к файлу и введите pwd, чтобы получить правильный путь, а затем соответствующим образом измените свой сценарий.

+0

Да, это сценарий bash. Поэтому я вызываю скрипт с командой sh, и я попытался с sh executable.exe запустить его, но есть такая же проблема. –

+0

У файла есть расширение 'exe'? Если это так, то это, вероятно, не скрипт bash. Если вы откроете файл в текстовом редакторе, как он выглядит? –

+0

мой скрипт - скрипт bash. Но этот скрипт пытается запустить исполняемый файл с расширением exe. –

0

Содержание script.sh в папке Oper:

echo START 
/cygdrive/c/Users/jo/oper/file.exe 

В Cygwin терминале (в правой папке):

sh Script.sh 

(Path обновлено)