Chinaunix首页 | 论坛 | 博客
  • 博客访问: 288097
  • 博文数量: 68
  • 博客积分: 3061
  • 博客等级: 中校
  • 技术积分: 652
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-27 11:39
文章分类

全部博文(68)

文章存档

2018年(1)

2017年(2)

2016年(1)

2014年(2)

2012年(6)

2011年(14)

2010年(38)

2008年(4)

我的朋友

分类: LINUX

2010-08-04 14:44:26

  以test.c为例,它将经历以下步骤:
  1. 预处理:预处理器cpp 将test.c的宏展开和include 文件进行导入
    cpp test.c test.i 或者 gcc -E test.c -o test.i
  2. 编译:编译器cc 将test.i编译成汇编文件
            cc/g++ -S test.i -o test.s 或者 gcc -S test.c -o test.s
  3. 汇编:汇编器as 将test.s 编译成目标文件,可用nm来查看生成的符号
            as test.s -o test.o 或者 gcc -c test.c -o test.o
  4. 链接:连接器ld 将test.o 和外部符号链接变为可执行文件
            ld 还不知道怎么做的 或者 gcc test.o 这里将默认生成a.out的权限为可执行的文件
          或者 gcc test.o > test,会生成a.out和test可执行文件,但test要 chmod u+x test

以上步骤可直接执行:gcc test.c -o test.
            
阅读(524) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~