Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux cygwin二进制exec格式错误_Linux_Windows_Bash_Cygwin - Fatal编程技术网

Linux cygwin二进制exec格式错误

Linux cygwin二进制exec格式错误,linux,windows,bash,cygwin,Linux,Windows,Bash,Cygwin,我有一个脚本文件,可以在windows中使用Cygwin运行。当我尝试使用这个文件时,我得到了以下错误 -bash:/sigdet/filename:无法执行二进制文件:Exec格式错误 sigdet是Cygwin目录中的文件夹,我有脚本。Rawdata是包含脚本应该分析的原始数据文件的目录的名称 为了尝试解决这个问题,我已经更改了文件权限,我已经检查以确保它在64位机器上,并且脚本似乎已经在64位机器上编译。经过这些步骤,我不知道还有什么问题。以下是我输入的命令: 我首先更改了目录,如下所示:

我有一个脚本文件,可以在windows中使用Cygwin运行。当我尝试使用这个文件时,我得到了以下错误

-bash:/sigdet/filename:无法执行二进制文件:Exec格式错误

sigdet是Cygwin目录中的文件夹,我有脚本。Rawdata是包含脚本应该分析的原始数据文件的目录的名称

为了尝试解决这个问题,我已经更改了文件权限,我已经检查以确保它在64位机器上,并且脚本似乎已经在64位机器上编译。经过这些步骤,我不知道还有什么问题。以下是我输入的命令:

我首先更改了目录,如下所示:

$cd/sigdet/

然后我运行了支持工作的脚本:

$/sigdet/filename-i rawdata

脚本文件是否需要在windows中具有扩展名?我尝试将其更改为.sh扩展名,但没有成功。我听说它只是在其他windows机器上正常工作

感谢所有能帮上忙的人

  • 您的文件不是可执行文件它很可能包含专为Linux操作系统设计的ELF可执行文件,或者它已损坏。
  • 如果您的文件是一个shell脚本,或者实际上是任何包含纯文本的文件,则会出现不同的错误(例如,“预期命令名”或“未知命令:XYZ”等)
  • 脚本不应该像任何可执行文件一样具有文件扩展名。另一方面,它们应该有shebangs:位于第一行的小文本,告诉系统到解释器的路径。例如,一个Python可执行脚本可能被命名为
    which
    ,并具有
    #/usr/bin/python3
    或第一行中的类似文件。当您在shell中运行它时,它将在
    /usr/bin
    中查找
    python3
    ,并像这样运行您的文件:
    /usr/bin/python3./whatever
    。(事实上,由于这一点,您还可以指定传递给解释器的其他参数。)
  • 您的脚本也有可能是有效的,但它包含一个指向错误解释器的shebang。如果是这种情况,那么路径很可能是正确的,否则您将得到
    /whatever/解释器:坏解释器:没有这样的文件或目录
    错误或类似错误。但是,所有其他点都适用于解释器(它只是另一个可执行文件…)


    如果脚本和/或解释器至少要在Windows或Cygwin上执行,它应该包含前面提到的shebang(
    #!/path
    ),或者应该是Windows可执行文件(在这种情况下,文件数据应该以
    MZ
    字母开头,您可以在记事本中检查)。如果不是,这意味着您收到的文件无法在Cygwin上运行。

    也有同样的问题。在makefile的顶部添加了以下内容:

    出口拱门=天鹅座


    在生成过程中,创建了Linux和Windows版本的可执行文件。您只需使用.exe版本。

    在我的例子中,我在使用错误的命令编译C程序时出错。当我使用正确的命令时:

    gcc myprog.c -o myprog.exe
    

    错误被解决了

    谢谢你的快速回复,rr-。我在记事本中打开了文件,文件开头有ELF。这是否意味着除非使用Linux,否则无法运行脚本?是的,确实如此。该文件受copywrite保护,因此很遗憾,我无法上载该信息。