我可以在Cygwin中运行哪些程序?


1
  1. Cygwin是否只运行Windows可执行文件?当我在Windows 10中运行的Cygwin中运行ELF程序时,它会说

    $ ./wkhtmltopdf
    -bash: ./wkhtmltopdf: cannot execute binary file: Exec format error
    
    $ file wkhtmltopdf
    wkhtmltopdf: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter
    /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.18,
    BuildID[sha1]=b6566a9e44c43a0eebf18d8c1dc6cb616801a77e, stripped
    
  2. Cygwin是否将这些常见的Linux实用程序的实现作为具有相同基本名称但添加.exe为扩展名的Windows可执行文件?

  3. Cygwin可以运行任何本机Windows可执行文件,或者大多数可执行文件?

谢谢。

Answers:


6

来自https://www.cygwin.com/

Cygwin是:

  • 大量GNU和开源工具,提供类似于Windows上的Linux发行版的功能。

  • 一个DLL(cygwin1.dll),它提供了大量的POSIX API功能。

Cygwin不是:

  • 一种在Windows上运行本机Linux应用程序的方法。如果要在Windows上运行,则必须从源重建应用程序。
  • 一种神奇地使本机Windows应用程序能够识别信号,ptys等UNIX®功能的方法。
    如果您想利用Cygwin
    功能,还需要从源代码构建应用程序。

关于你的问题:

  1. 你无法在Windows上运行ELF。你需要一台带有Linux的虚拟机
  2. cygwin提供Unix实用程序,但有些可能与Windows名称相同。保持Exe扩展以实现兼容性。
  3. 是。Cygwin程序也是Windows之一
  4. 是。Cygwin程序可以启动正常的Windows(非cygwin)程序。

请阅读如何参考他人撰写的材料。你应该阻止其他人写的引文。请参阅Markdown帮助。我这次为你修好了,但是将来请注意这个。
DavidPostill

1

cygwin运行从cmd.exe运行的程序因此可以从cygwin.exe运行cmd.exe程序,并且可以从cmd.exe运行cygwin.exe程序

甚至到了你甚至可以使用一个cygwin实用程序,你几乎从来没有从普通的cmd.exe正常运行,你可以运行它

C:\cygwin\bin>chmod --help
Usage: chmod [OPTION]... MODE[,MODE]... FILE...
  or:  chmod [OPTION]... OCTAL-MODE FILE...

你甚至可以从cygwin发射记事本

user@comp ~
$ notepad.exe a.a


user@comp ~
$ xcopy /?
Copies files and directory trees.

XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W]

你可以尝试dir,虽然它运行cygwin的dir实现,就像ls。

user@comp ~
$ where dir
C:\cygwin\bin\dir.exe

user@samsung350 ~
$ dir
a         adfff           dfds      gg2.exe             r.php

有人可能会问,cygwin实现和cmd.exe实现之间有什么区别。我遇到了两个不同之处 - 一般来说,实用程序的cygwin实现会支持LF而不是CRLF。并且在某些情况下可能设计为更多用于单引号而不是双引号。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.