让我告诉你我的问题。我有一个执行Linux可执行文件的shell脚本。我无法访问此exe的源代码。
当我在Linux机器上运行脚本时,没有问题。 但是,如果我尝试在我的Windows笔记本电脑上运行脚本,使用cygwin,我会收到错误“无法执行二进制文件”。
有什么解决方案吗?
谢谢!
答案 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
(路径更新)