Linux可执行文件在cygwin终端上

时间:2015-12-22 15:46:56

标签: linux windows unix cygwin

让我告诉你我的问题。我有一个执行Linux可执行文件的shell脚本。我无法访问此exe的源代码。

当我在Linux机器上运行脚本时,没有问题。 但是,如果我尝试在我的Windows笔记本电脑上运行脚本,使用cygwin,我会收到错误“无法执行二进制文件”。

有什么解决方案吗?

谢谢!

3 个答案:

答案 0 :(得分:1)

来自https://stackoverflow.com/a/4144536/5704102

“...... Cygwin是一个兼容层,旨在尽可能多地在Windows中实现POSIX和Linux API。这意味着程序必须专门为Cygwin编译......”

答案 1 :(得分:0)

这个脚本是什么样的?它是一个bash脚本吗?如果是这样,您可能想在Cygwin中尝试sh <scriptfile>。如果这不起作用,并且它是一个bash脚本,请确保您有sh.exe。输入sh并点击两次标签进行检查。

如果它是一个bash脚本,另一个潜在的问题是你没有安装Cygwin运行脚本所需的东西。确保脚本尝试运行的所有命令都能正常运行。如果没有,您可能必须运行Cygwin安装程序并安装运行脚本所需的任何内容。

此外,您可能想要检查权限。

如果文件具有exe扩展名,则它应该在Windows上运行,除非它是针对64位体系结构编译的并且您运行的是32位操作系统。否则,您可能会遗漏可执行文件所依赖的某些.dll个文件。

编辑:

如果这是您脚本的内容:

echo START
/oper/file.exe

然后你可能有不正确的路径。 Cygwin路径通常以Windows中的/cygdrive/c/开头。转到文件所在的位置并键入pwd以获取正确的路径,然后相应地修改脚本。

答案 2 :(得分:0)

oper文件夹中Script.sh的内容:

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

在Cygwin终端(在右侧文件夹中):

sh Script.sh

(路径更新)