2021-11-01

C语言的编译:编译、汇编。

源代码(.c)->编译器->汇编代码(.os)->汇编器->目标代码(.o)->链接器->可执行程序。

编译文本形式源代码翻译为机器语言形式的目标文件的过程

链接把目标文件、操作系统的启动代码和用到的库文件进行组织形成最终生成可加载、可执行代码的过程。

.h与.c文件的关系像是书籍目录与对应内容关系:一般.h里面是声明,.c里面是具体实现。可以将.c文件编译为.obj或者是.lib文件分享给他人调用而不暴漏源代码。

.i文件根据#开头的命令对源程序修改,即宏替换后的文件

.lib文件 静态数据链接库,起链接程序的作用

.obj文件二进制目标文件,与系统库函数连接为.exe可执行文件

.s文件编译器处理过的源代码文件,包含发送给处理器的汇编指令

.o文件:即对象文件,为可执行文件。包含对各个函数入口的标记,描述。当函数要执行时经过链接器把多个.o文件链成一个可执行文件。

名词作用gcc命令对应命令
预处理器将.c文件转化成.i文件gcc -Ecpp
编译器将.c/.h文件转换成.s文件gcc -Scc -S
汇编器将.s文件转成.o文件gcc -cas
链接器将.o文件转化为可执行程序gccld
加载器将可执行程序加载到内存并进行执行loader(加载器)和ld-linux.so(动态连接器)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值