如何在Cygwin中执行文件?

How do I execute a file in Cygwin?

提问人:Thomas Owens 提问时间:8/30/2008 最后编辑:Ryan GatesThomas Owens 更新时间:6/2/2015 访问量:129880

问:

如何使用 Cygwin shell 执行?a.exe

我在 Windows 上的 Eclipse 中创建了一个 C 文件,然后使用 Cygwin 导航到该目录。我在 C 源文件上调用了 gcc 并生成了。我想跑.a.exea.exe

C GCC Cygwin(西格温

评论


答:

81赞 Allain Lalonde 8/30/2008 #1

./a.exe 在提示符下

评论

6赞 Keith Thompson 6/2/2015
./a也有效;Cygwin 足够聪明,可以将其视为(为了与 Unix 兼容,Unix 不对可执行文件使用默认后缀)。a.exea.exe
11赞 Kibbee 8/30/2008 #2

您应该能够通过键入文件名来调用它。您可能需要调用 ./a.exe,因为出于安全原因,当前目录通常不在路径上。

6赞 blank 8/30/2008 #3

只需在 shell 中键入 ./a

评论

1赞 Saurabh Rana 10/10/2013
你知道为什么这有效吗?./a.exe 有意义,但没有扩展名,这不应该运行。有什么具体原因吗?
1赞 lindhe 12/19/2014
那可能是cygwin弄清楚事情并变得聪明。UNIX 程序通常没有文件扩展名,因此如果 cygwin 旨在在 Windows 上提供 UNIX 感觉,那么提供让程序文件扩展名的选项是有意义的。
-2赞 kaiz.net 8/30/2008 #4

就叫它吧

> a

确保找到它(路径)。

评论

0赞 Keith Thompson 6/2/2015
将当前目录放在 your 中是个坏主意。如果要在当前目录中执行命令,请键入 。.$PATH./a
2赞 Jason Weathered 8/30/2008 #5

若要执行当前目录中的文件,要使用的语法为:./foo

正如allain所提到的,是使用Cygwin在工作目录中执行.exe的正确方法。./a.exe

注: 您可能希望使用该参数来指定您自己的输出文件名。这方面的一个例子是:。-occcc helloworld.c -o helloworld.exe

2赞 Adam Mitz 8/30/2008 #6

托马斯写道:

显然,gcc 的行为不像 C 编程语言中描述的那样

一般来说确实如此。要使程序在Windows上运行,它需要以.exe结尾,“C编程语言”不是为Windows程序员编写的。正如你所看到的,cygwin模拟了POSIX环境的许多功能,但不是全部。

1赞 Bernard 8/30/2008 #7

显然,gcc 的行为不像 C 编程语言中描述的那样,它说命令 cc helloworld.c 生成一个名为 a.out 的文件,可以通过在提示符上键入 a.out 来运行该文件。

Unix 在很长一段时间内都没有默认以这种方式运行(因此您可以只在前面写不带 ./ 的可执行文件名称)。它被称为 .exe,否则 Windows 不会执行它,因为它从扩展名获取文件类型。

3赞 goldenmean 11/10/2010 #8

cygwin 下的 gcc 不会生成“ELF 32 位 LSB 可执行文件”类型的 Linux 可执行输出文件,但它会生成一个类型为“PE32 可执行文件 for MS Windows”的 Windows 可执行文件,它依赖于 cygwin1.dll,因此需要在 cygwin shell 下运行。如果您需要在DOS提示符下独立运行它,则它们cygwin1.dll需要位于Windows PATH中。

-广告。

评论

0赞 Luis Carlos Chavarría 2/24/2012
如果我想在没有cygwin的情况下在另一台计算机上运行我的程序,我该如何消除这种依赖关系
0赞 Daniel Roethlisberger 3/15/2012
您可以尝试使用 -mno-cygwin 来删除它,但这样您就会丢失它提供的所有 UNIX API;-mno-cygwin 通常与 MinGW (www.mingw.org) 一起使用。
-5赞 Soukaina 2/11/2015 #9

当你在Cygwin中启动时,你位于“/home/Administrator”区域,所以把你的.exe文件放在那里。

然后在提示符下运行:

cd a.exe

Cygwin将读入它,并要求您安装它。

评论

0赞 Keith Thompson 6/2/2015
cd更改为指定目录。如果你刚刚通过调用编译器创建了一个文件,你就不会被要求安装任何东西。(通常情况下,您不会进入;您将位于用户名的主目录中。.exe/home/Administrator