【发布时间】:2015-01-20 06:04:49
【问题描述】:
我也很担心如何让你们了解我的问题并分享我的经验。我在学习C。在以前,我使用Code-blocks IDE来编译和运行C代码。我了解到作为初学者最好使用cmd来编译和运行代码而不是IDE。我使用的是windows 8。在我不习惯使用cmd之前,我还了解到要成为一名高级用户和优秀的程序员,我应该非常了解cmd的使用。 设置环境变量后开始通过cmd通过以下命令编译c代码
gcc -o "可执行文件名" "C源代码文件名"
它会创建一个 .exe 文件。但没有 .o 文件。当我使用 IDE 时,还发现了一个带有 .exe 的 .o 文件
- 可能的原因是什么?
编译代码后,我通过调用“可执行文件名”来运行它。 当检查目录时,发现了一个 .exe 文件。 但现在的问题是,最近在编译运行代码,发现没有创建.exe文件,而是创建了一个未知扩展名的文件“POINTERWHILE File (.pointerWhile)”(已复制从文件属性)。这个未知的扩展文件仅由 cmd 运行。它可能是我的源代码文件名的一部分。下面给出了代码和源代码的名称。
源代码名称:Example184.1.pointerWhile
#include<stdio.h>
main()
{
char *p = "stop";
char str[80];
do
{
printf("Enter a String: ");
gets(str);
}
while(strcmp(p,str));
}
此程序将接受输入,直到输入“停止”为止。
这种情况发生在其他几个文件中。然后我将它们复制到另一个文件夹并编译并运行,但结果相同。
我通过代码块从同一个文件夹和其他文件夹编译并运行相同的代码,结果是一样的。该文件仅在 IDE 中运行。
然后在同一目录和其他目录中创建另一个名称不同的文件,但代码相同。然后它正在创建 .exe 文件。
2.产生.exe文件的原因可能是什么?
【问题讨论】:
-
尝试提出更小、更简单的问题。我几乎不知道你想问什么。
-
如果你给 GCC 一些
.c文件,它将编译它们并将它们链接到一个可执行文件中,并且不会保存任何中间的.o文件。如果你想要这种行为,你需要将-c传递给 GCC,告诉它只编译,而不是链接。 -
那么如何从.o文件制作.exe文件呢?唯一的.o文件有什么用@JonathonReinhart
-
堆栈溢出并不意味着教授编译过程的每一个细节。你需要找到一本好书、资源或导师。 en.wikipedia.org/wiki/Object_file