为什么c语言编译完还需要link

ppn029012 2011-03-12 12:05:03
为什么c文件编译完以后不是直接就编译生成可执行的机器代码,而是先生成目标文件。然后再用目标文件去链接库。
这一步链接的目的在哪里啊,为什么不在compile的时候直接完成所有工作而要进行那么一项多余的工作呢?
谢谢您的回答
...全文
108 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ppn029012 2011-03-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 arong1234 的回复:]

因为C语言允许把代码写在多个文件中,然后分别编译每个文件,而单个源文件无法生成exe,所以必须有中间文件保存部分编译的机器码。其实obj也是机器码,只是需要把多个obj连接在一起才能构成完整的可执行文件
[/Quote]

哦,恍然大悟啊!谢谢
arong1234 2011-03-12
  • 打赏
  • 举报
回复
因为C语言允许把代码写在多个文件中,然后分别编译每个文件,而单个源文件无法生成exe,所以必须有中间文件保存部分编译的机器码。其实obj也是机器码,只是需要把多个obj连接在一起才能构成完整的可执行文件

69,377

社区成员

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

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