【发布时间】:2013-05-13 13:34:23
【问题描述】:
我想知道如何防止 Cygwin 下的 gcc 自动将 .exe 扩展名添加到已编译的文件中,因为我只是让自己对“丢失文件”产生了很多困惑。就上下文而言,我正在为大学做一个 C 项目,我通常在运行 Ubuntu(与 Windows 的双启动)的实验室工作,但在家工作我更喜欢使用我的 Windows 机器,ergo Cygwin。如果我只是删除扩展,它仍然可以在任一系统上正常工作,但是每当我刚刚在 Cygwin 下编译它时,必须更改命令以包含扩展,这是相当令人沮丧的。
我查阅了 Cygwin 的 FAQ 发现这可能是与 .bashrc 或 .bash_profile (see here) 中的环境变量有关的问题,但我不是命令行忍者,对编辑不是很熟悉配置文件...我还发现了两个相关的问题,它们表现出相同的行为,但与尝试更改它无关:
Compiling with gcc (cygwin on windows)
Executable file generated using gcc under cygwin
有什么想法吗?
它实际上是用于 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 中完成的工作都将是。
【问题讨论】:
-
你用来调用 gcc 的命令行是什么?
-
这不能回答您的问题,但您可能想尝试在 VirtualBox 等虚拟机中运行 Ubuntu。这样您就不必担心任何此类问题,您的家庭环境可以与您在学校的环境完全一样。