从ASCII码源文件到可执行目标文件
2013-09-05 21:14
441 查看
/*main.c*/ void swap(); int buf[2]={1,2}; int main(){ swap(); return 0; }
/*swap.c*/ extern int buf[]; int *bufp0=&buf[0]; int *bufp1; void swap(){ int temp; bufp1=&bufp[1]; temp=*bufp[0]; *bufp0=*bufp1; *bufp1=temp; }
1.C预处理器(cpp)将源程序main.c翻译成一个ASCII码的中间文件main.i
2.C编译器(ccl)将main.i翻译成一个ASCII汇编语言文件main.s
3.汇编器as将main.s翻译成一个可重定位目标文件(relocateble object file)main.o
//相同过程生成swap.o
4.连接器程序ld将main.o和swap.o以及一些必要的系统目标文件组合起来,创建一个可执行目标文件
5.当我们用类似unix>./p运行可执行文件p时,加载器拷贝p中的代码和数据到存储器,然后将转移控制转移到这个程序的开头
相关文章推荐
- 重复执行目标,构造文件指定目标和命令行指定目标,其结果是不一样的
- ld命令_Linux ld 命令用法详解:将目标文件连接为可执行程序
- 1.python实现循环执行目标目录下脚本文件
- 【转】什么是源文件,目标文件,可执行文件
- [转帖]调用explore打开指定文件所在的文件夹,并把目标文件设为选定状态,甚至.lnk文件也能自动找到它的目标执行程序文件。
- 目标文件和可执行文件的区别
- 由.c源码到可执行目标文件的过程
- makefile 将生成的目标文件和可执行文件存放在指定的目录下
- 可执行目标文件
- 导入表条目加载失败所导致的目标文件执行失败
- 什么是源文件,目标文件,可执行文件
- C语言:目标代码文件,可执行文件和库
- 目标代码文件、可执行文件和库
- 目标代码文件、可执行文件和库
- vs生成安装包时,生成的快捷方式指向的目标只是 文件夹,而不是具体的可执行文件 解决办法
- 源文件,目标文件与可执行文件
- 在Unix系统上,从源文件、目标文件、可执行文件的编译过程
- C语言学习笔记之目标代码文件、可执行文件、库
- 执行目标文件引发的问题:syntax error: word unexpected (expe...
- 1.预处理,生成预编译文件(.文件): Gcc –E hello.c –o hello.i 2.编译,生成汇编代码(.s文件): Gcc –S hello.i –o hello.s 3.汇编,生成目标文件(.o文件): Gcc –c hello.s –o hello.o 4.链接,生成可执行文件: linux笔记