提问人:Thomas Owens 提问时间:8/30/2008 最后编辑:Ryan GatesThomas Owens 更新时间:6/2/2015 访问量:129880
如何在Cygwin中执行文件?
How do I execute a file in Cygwin?
问:
如何使用 Cygwin shell 执行?a.exe
我在 Windows 上的 Eclipse 中创建了一个 C 文件,然后使用 Cygwin 导航到该目录。我在 C 源文件上调用了 gcc 并生成了。我想跑.a.exe
a.exe
答:
./a.exe 在提示符下
评论
./a
也有效;Cygwin 足够聪明,可以将其视为(为了与 Unix 兼容,Unix 不对可执行文件使用默认后缀)。a.exe
a
.exe
您应该能够通过键入文件名来调用它。您可能需要调用 ./a.exe,因为出于安全原因,当前目录通常不在路径上。
只需在 shell 中键入 ./a
评论
就叫它吧
> a
确保找到它(路径)。
评论
.
$PATH
./a
若要执行当前目录中的文件,要使用的语法为:./foo
正如allain所提到的,是使用Cygwin在工作目录中执行.exe的正确方法。./a.exe
注: 您可能希望使用该参数来指定您自己的输出文件名。这方面的一个例子是:。-o
cc
cc helloworld.c -o helloworld.exe
托马斯写道:
显然,gcc 的行为不像 C 编程语言中描述的那样
一般来说确实如此。要使程序在Windows上运行,它需要以.exe结尾,“C编程语言”不是为Windows程序员编写的。正如你所看到的,cygwin模拟了POSIX环境的许多功能,但不是全部。
显然,gcc 的行为不像 C 编程语言中描述的那样,它说命令 cc helloworld.c 生成一个名为 a.out 的文件,可以通过在提示符上键入 a.out 来运行该文件。
Unix 在很长一段时间内都没有默认以这种方式运行(因此您可以只在前面写不带 ./ 的可执行文件名称)。它被称为 .exe,否则 Windows 不会执行它,因为它从扩展名获取文件类型。
cygwin 下的 gcc 不会生成“ELF 32 位 LSB 可执行文件”类型的 Linux 可执行输出文件,但它会生成一个类型为“PE32 可执行文件 for MS Windows”的 Windows 可执行文件,它依赖于 cygwin1.dll,因此需要在 cygwin shell 下运行。如果您需要在DOS提示符下独立运行它,则它们cygwin1.dll需要位于Windows PATH中。
-广告。
评论
当你在Cygwin中启动时,你位于“/home/Administrator”区域,所以把你的.exe文件放在那里。
然后在提示符下运行:
cd a.exe
Cygwin将读入它,并要求您安装它。
评论
cd
更改为指定目录。如果你刚刚通过调用编译器创建了一个文件,你就不会被要求安装任何东西。(通常情况下,您不会进入;您将位于用户名的主目录中。.exe
/home/Administrator
评论