我想知道如何防止 Cygwin 下的 gcc 自动将 .exe 扩展名添加到已编译的文件中,因为我只是让自己对“丢失的文件”产生了很多困惑。就上下文而言,我正在为大学做一个 C 项目,我通常在运行 Ubuntu(与 Windows 的双启动)的实验室工作,但在家工作我更喜欢使用我的 Windows 机器,ergo Cygwin。如果我只是删除扩展,它仍然可以在任一系统上正常工作,但是每当我刚刚在 Cygwin 下编译它时必须更改命令以包含扩展,这是相当令人沮丧的。
我从 Cygwin 查找了常见问题解答,发现这可能是与 .bashrc 或 .bash_profile 中的环境变量有关的问题(请参阅此处),但我不是命令行忍者,对编辑配置文件不是很熟悉。 .我还发现了两个相关的问题,它们表现出相同的行为,但与试图改变它无关:
有任何想法吗?
它实际上是用于 C 项目中的 MPI,所以我有一个调用 mpicc 的 Makefile 但这与问题并不真正相关,因为我也尝试使用 gcc 并且两者都做同样的事情。对于这个问题,我得到的命令和输出是:
$ gcc -o hello hello.c
$ ls
hello.c hello.exe
$./hello
Hello, world!
$./hello.exe
Hello, world!
请注意,使用或不使用扩展程序在 shell 中运行相同的操作,但与 mpirun 不同,这就是我想更改此行为的原因。
我最终决定 Windows 不是我的编程环境。从现在开始,所有可以在 Linux 中完成的工作都将是。