gcc 编译器的 cmd 未在 windows 中为 C 创建 .exe 文件

.exe file is not being created in windows for C by cmd by gcc compiler

我也在苦恼如何让大家了解我的问题,分享我的经验。我正在学习 C.in 之前,我使用代码块 IDE 编译和 运行 C code.i 了解到作为初学者最好使用 cmd 编译和 运行 代码比 IDE。我正在使用 windows 8. 在我不习惯使用 cmd 之前,我还了解到,作为高级用户和优秀的程序员,我应该熟悉 cmd 的使用。 设置好环境变量后开始通过cmd通过以下命令编译c代码

gcc -o "executable file name" "C source code file name"

创建一个 .exe 文件。但没有 .o 文件。当我使用 IDE 时,还发现了一个带有 .exe

的 .o 文件
  1. 可能的原因是什么?

编译代码后,我通过调用 "executable file name" 运行 它。 当检查目录时,发现了一个 .exe 文件。 但现在的问题是,最近我正在编译和 运行ning 代码,我发现没有创建 .exe 文件,但是创建了一个扩展名未知的文件"POINTERWHILE 文件 (.pointerWhile) ”(从文件属性复制)。此未知扩展文件仅由 cmd 运行ing。它可能是我的源代码文件名的一部分。下面给出了代码和源代码的名称。

源代码名称:Example184.1.pointerWhile

#include<stdio.h>
main()
 {
  char *p = "stop";
  char str[80];
   do
    {
     printf("Enter a String: ");
     gets(str);
    }
  while(strcmp(p,str));
 }

此程序将接受输入,直到 "stop" 输入。

这种事情发生在其他几个 files.then 我将它们复制到另一个文件夹并编译 运行 但结果相同。

我和运行相同的代码通过代码块形成相同的文件夹和其他文件夹,结果是相同的。文件在 IDE 时只有 运行ning。

然后在同一目录和其他文件中创建另一个名称不同但代码相同的文件。然后它正在创建 .exe 文件。

2.what 可能是创建 .exe 文件的原因?

你把cmd和C一起学的辛苦了!

但是,我认为您混淆了文件的扩展名(名称)及其内容。当你告诉 gcc 生成一个可执行文件时,你可能想给它一个 .exe 扩展名,就像你说的那样,假设你的源代码被称为 "myprog.c":

gcc -o myprog.exe myprog.c

这应该总是生成一个 myprog.exe 文件。但没有什么能阻止你这样称呼它: gcc -o myprog.myFancyExtension myprog.c

您应该仍然可以通过 cmd 运行 程序(不过我没有在 windows 上测试过)。请注意,在其他系统上,例如 Linux,可执行文件通常根本没有扩展名。

此外,您在谈论 IDE 如何生成 myprog.o 目标文件以及 myprog.exe 可执行文件。为此,您的 IDE 调用编译器 (gcc) 两次:一次生成 .o 文件,另一次生成 .exe 文件。无法在编译器的一个 运行 中生成这两个文件。学习 cmd 的好处是你会在不告诉你的情况下了解你的 IDE 实际为你做了什么。缺点是你必须真正学习它;)

通常,人们不喜欢手动使用 gcc,因为随着您的项目的增长,它们将使用不同的文件,手动重新编译它们变得很乏味。为了克服这个问题,您需要使用构建工具,例如 Make。我不熟悉 Windows 下的开发,所以我不能推荐任何特定的工具。这些工具的要点是,当你的项目有多个源文件时,你只需要调用一次构建器,比如 Make:

make

而不是手动调用:

gcc -c myFeature1.c
gcc -c myOtherFeature.c
gcc -c myYetAnotherFeature.c
gcc -c myMain.c
gcc -o myMain.exe MyMain.o myFeature1.o myOtherFeature.o myYetAnotherFeature.o

希望对您有所帮助