gcc编译器未在windows for C中通过cmd创建.exe文件
我还担心如何让你们了解我的问题并分享我的经验。我正在学习C。在前面,我使用代码块IDE编译和运行C代码。我了解到,作为初学者,使用cmd编译和运行代码比使用IDE更好。我正在使用Windows8。在我不习惯使用cmd之前,我还了解到,要想成为一名高级用户和优秀的编程人员,我应该非常了解cmd的用法。 设置环境变量后,通过以下命令开始通过cmd编译c代码 gcc-o“可执行文件名”“C源代码文件名” 它是一个.exe文件。但是没有.o文件。当我使用IDE时,还发现了一个带有.exe的.o文件gcc编译器未在windows for C中通过cmd创建.exe文件,c,windows,gcc,cmd,C,Windows,Gcc,Cmd,我还担心如何让你们了解我的问题并分享我的经验。我正在学习C。在前面,我使用代码块IDE编译和运行C代码。我了解到,作为初学者,使用cmd编译和运行代码比使用IDE更好。我正在使用Windows8。在我不习惯使用cmd之前,我还了解到,要想成为一名高级用户和优秀的编程人员,我应该非常了解cmd的用法。 设置环境变量后,通过以下命令开始通过cmd编译c代码 gcc-o“可执行文件名”“C源代码文件名” 它是一个.exe文件。但是没有.o文件。当我使用IDE时,还发现了一个带有.exe的.o文件 可能
#include<stdio.h>
main()
{
char *p = "stop";
char str[80];
do
{
printf("Enter a String: ");
gets(str);
}
while(strcmp(p,str));
}
#包括
main()
{
char*p=“停止”;
char-str[80];
做
{
printf(“输入字符串:”);
获取(str);
}
而(strcmp(p,str));
}
此程序将接受输入,直到输入“停止”
这种情况发生在其他几个文件中。然后我将它们复制到另一个文件夹中,编译并运行,但结果相同
我编写并运行相同的代码,形成相同的文件夹和其他文件夹的代码块,结果是相同的。该文件仅在IDE中运行
然后在同一个目录和other中创建另一个具有其他名称的文件,但代码相同。然后创建.exe文件
2.创建.exe文件的原因可能是什么?您在学习cmd和C时付出了巨大的努力 但是,我认为您混淆了文件的扩展名(名称)及其内容。当您告诉gcc生成一个可执行文件时,您可能希望给它一个.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
希望它能有所帮助试着问一些小而简单的问题。我几乎不知道你想问什么。如果你给GCC一些
.c
文件,它将编译它们并将它们链接到一个可执行文件中,并且不会保存任何中间.o
文件。如果您想要这种行为,您需要将-c
传递给GCC,告诉它只进行编译,而不进行链接。那么如何从.o文件生成.exe文件?only.o文件@JonathonReinhartStack溢出的用途并不是为了教授编译过程中的每一个细节。你需要找到一本好书、资源或导师。使用cmd工作的动机是我从Linux获得的。我试图学习Linux,但我发现了一些问题。我无法在没有internet的Linux上安装软件,也就是说Ubuntu软件中心。我在互联网上搜索,但无法理解它们和使用搜索结果。结果我完全依赖互联网。我试图与windows一起启动我的pc Linux,但由于不小心,我所有的硬盘都被格式化了,我丢失了数据。虽然不知怎么的,我已经把它们都找回来了。然后,我想我应该使用的资源,所有准备就绪在我手中意味着windows命令。如果你有任何资源学习Linux作为初学者,请不要忘记分享@KrahnacKYes,现在人们最有可能使用Internet在Linux、Windows和OSX(而不是CD或其他来源)中安装软件。在我看来,Ubuntu在用户友好方面做了很多努力,所以我建议初学者使用它。如果你对此有任何问题,你可以在Ubuntu论坛或askubuntu.com上发布。以下是一个可能有用的链接:
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