.o文件与.out文件的问题

yazi0127 2008-02-28 05:12:12
讨论一个问题,请高手解答:
在C语言的编译中,源文件为.c, 头文件.h, 那.out是怎样产生的?.o文件到底是编译成汇编语言的文件,还是最终的二进制文件?有点不理解 :-(
...全文
3265 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
sheenl 2008-03-03
  • 打赏
  • 举报
回复
恩, 差不多
yazi0127 2008-03-03
  • 打赏
  • 举报
回复
大概理解了一下:.o是由源文件.c编译生成的二进制文件,.out是.o链接生成的表示是在linux的可执行文件。这样理解文件的生成,对否?
xxmv99 2008-02-29
  • 打赏
  • 举报
回复 1
.o是目标文件,不可运行的中间文件,out文件是经过链接产生的可执行文件,后缀只是方便用户
xieqidong 2008-02-29
  • 打赏
  • 举报
回复 1
.out文件一般都是经过链接产生的可执行文件。
michney 2008-02-28
  • 打赏
  • 举报
回复 1
.o是目标文件,还要经过连接才能变成可执行文件
zeloas 2008-02-28
  • 打赏
  • 举报
回复 2
.o文件一般是通过编译的但还未链接的
.out文件一般都是经过相应的链接产生的可执行文件(linux下)
IlikeEnglish 2008-02-28
  • 打赏
  • 举报
回复
.o文件是目标文件,是一个编译单元产生的二进制文件。
.out文件本来是一种可执行文件的格式,但是现在已经被ELF格式取代了,Linux或unix生成的a.out文件其实就是ELF格式的。
可执行文件=若干个.o文件+启动代码
zzyjsjcom 2008-02-28
  • 打赏
  • 举报
回复
.o .out 或者不要扩展名 都只是一个习惯的问题 linux没强制的规定

gcc -o a.o a.c 或
gcc -o a a.c或
gcc -o a.out a.c
都可以啊
  • 打赏
  • 举报
回复
在linux中 .o通常保存的是可执行代码 ,至于可执行文件则没有规定扩展名,用的是文件属性位来决定的是否可执行。在chmod中设置
shaoze5 2008-02-28
  • 打赏
  • 举报
回复
cl编译.c文件生成.obj;
link将生成的.obj文件与库文件.lib链接,生成.exe文件。

70,029

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧