gcc汇编笔记

来源:互联网 发布:sqlserver数据备份方式 编辑:程序博客网 时间:2024/05/16 04:45

写在前面

  • 环境:ubuntu16.04和gcc
  • hello.c //源代码文件(text文件)
  • hello.i //预处理之后的文件(text文件)
  • hello.s //汇编文件(text文件)
  • hello.o //二进制文件(ELF文件)
  • hello //可执行文件(ELF文件)
  • hello.c >(预处理)> hello.i >(编译)> hello.s >(汇编)> hello.o >(链接)> hello
  • 这里写图片描述

gcc各种编译命令

  • gcc -E hello.c -o hello.i //预处理过程 hello.c-->hello.i
  • gcc -S hello.i -o hello.s //编译过程 hello.i-->hello.s
  • gcc -c hello.s //汇编过程 hello.s-->hello.o
  • gcc hello.o -o hello //链接过程 hello.o-->hello
  • gcc -S hello.c //直接生成汇编文件
  • gcc hello.c -o hello 直接生成可执行文件

程序编译过程简述

  • 预处理过程是将hello.c中的头文件和宏定义替换等等,形成hello.i
  • 编译过程是hello.i文件中的c语言语句替换成汇编语句等等,形成hello.s
  • 汇编过程是将hello.s中的汇编语句替换成机器指令等等,形成目标文件hello.o
  • 链接过程是将多个目标文件(这里只有一个目标文件hello.o,但是大工程k可能会有很多目标文件)和所需要的共享库链接拼合成一个可执行文件hello

参考资料

  • https://www.cnblogs.com/kekec/p/3238741.html
  • http://www.cnblogs.com/pipicfan/archive/2012/07/10/2583910.html
阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 lg d802 lgg2手机 lg g2 lg g2怎么样 g2上单 手机显示2g网络怎么回事 移动2g网络什么时候关闭 内存条可以2g和4g混装吗 比亚迪g 小鹏汽车g3 g3 戴尔g3键盘灯怎么开 戴尔游匣g3 小鹏g3 比亚迪g3 戴尔g3怎么样 g3高速 小鹏汽车g3售价 比亚迪g3报价及图片 游匣g3 惠普840g3 戴尔新g3 英致g3 移动3元1g流量日包 3元1g 3元1g流量 戴尔g3散热 小鹏汽车g3补贴后售价 瑞麒g3 戴尔g3选i5还是i7 戴尔g3和联想y7000 2018年戴尔g3系列测评 启赋3段900g 戴尔g3有背光键盘吗 lgg3 lg g3 bydg3 lg lg 3 g3/4 lgg3参数