Cygwin

使用cygwin“無法執行二進製文件”

  • December 4, 2019

我在文件夾 C:\cygwin 中安裝了 64 位 cygwin

跑步

"C:\cygwin\bin\sh.exe" /bin/ls

結果是

/bin/ls: /bin/ls: cannot execute binary file

為什麼?

Runnin sh 和 ls 分別工作。

C:\test>"C:\cygwin\bin\sh.exe"
sh-4.4$ /bin/ls
foreign_keys  functions  procedures  props.sql  schemas.sql  tables

使用 file 命令,我可以看到二進製文件是 64 位的。

C:\test>"C:\cygwin\bin\sh.exe"
sh-4.4$ file /bin/sh
/bin/sh: PE32+ executable (console) x86-64 (stripped to external PDB), for MS Windows
sh-4.4$ file /bin/ls
/bin/ls: PE32+ executable (console) x86-64, for MS Windows
sh-4.4$

我嘗試了一些變體,發現您可以使用:

C:\cygwin64\bin\sh.exe -c “/bin/ls”

或者

C:\cygwin64\bin\bash -c “/bin/ls”

引用自:https://serverfault.com/questions/994236