首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么在window C编程中我会得到"a.exe“而不是"a.out”

为什么在window C编程中我会得到"a.exe“而不是"a.out”
EN

Stack Overflow用户
提问于 2017-11-19 13:37:57
回答 3查看 9.6K关注 0票数 1

当我通过cc hello_world.c编译下面的"hello_world.c“时,

它用“a.exe”代替“a.out”

代码语言:javascript
运行
复制
#include <stdio.h>

main()
{
    printf("hello, world\n");
}
  1. "a.out“和"a.exe”有什么区别?
  2. 为什么我得到"a.exe“而不是"a.out”?
EN

回答 3

Stack Overflow用户

发布于 2017-11-19 13:52:56

这取决于你的平台。例如,如果不提供任何附加参数,gcc将在linux上生成.out,而在windows上生成.exe。(即运行cc / gcc "source")。

您可以强制gcc在windows上使用gcc "source" -o "dest.out"生成一个.out

如果您的编译器在默认情况下输出一个扩展(在您的例子中,.exe似乎是默认的,对Windows来说是完全可以的),我将坚持它。不需要担心没有得到另一种类型。

票数 7
EN

Stack Overflow用户

发布于 2017-11-19 13:51:27

Windows中的二进制执行文件具有扩展名exe。我不确定是否支持com-files,但这不是我们的情况。扩展out通常用于在某些程序工作时编写文本协议。我可以猜测,这是您的程序本身,正在启动,创建out-file。要获得更多帮助,请至少提供编译C程序所使用的程序环境。

票数 3
EN

Stack Overflow用户

发布于 2017-11-19 14:18:00

a.out临时文件是在编译c程序之后创建的,实际上是类似Unix的操作系统的目标码。对象代码用于编写系统调用,该调用实现了链接器的代码功能和重新定位信息,以帮助它在内存中找到目标代码(更多信息这里)。

编译器编译代码并编写一个名为目标代码的文件,在linux/unix中,该文件称为a.out。该文件可以进一步扩展到定义(或者更严格地说是在操作系统中显示的连系,以形成可执行映像)。

,例如在Windows中:

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47377488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档