预处理、编译、连接、运行
来源:互联网 发布:telnet for linux 编辑:程序博客网 时间:2024/05/23 02:06
1.预处理阶段:
编译器以C文件作为一个单元,首先读这个C文件,发现第一句与第二句是包含一个头文件,就会在所有搜索路径中寻找这两个文件,找到之后,就会将相应头文件中再去处理宏,变量,函数声明,嵌套的头文件包含等,检测依赖关系,进行宏替换,看是否有重复定义与声明的情况发生,最后将那些文件中所有的东东全部扫描进这个当前的C文件中,形成一个中间“C文件”
编译:
编译时是进行语法检查、函数分配空间,将各个函数编译成二进制码,按照特定目标文件格式生成目标文件
连接:
假如一个程序包含多个文件,在分别对每个源程序进行编译并得到多个目标程序后,要把这些目标程序连接起来,同时还要同系统提供的资源(如函数库)连接成为一个整体,如果不出现错误,会得到一个后缀为 .exe的可执行文件
运行:
运行时是执行连接好的程序(具体的没有找到相关资料) 将各个目标文件中的各段代码进行绝对地址定位,生成跟特定平台相关的可执行文件,当然,最后还可以用objcopy生成纯二进制码,也就是去掉了文件格式信息 (此下划线句摘自 http://zhidao.baidu.com/question/322035743.html)
一般说来编译器会做以下几个过程:
1.预处理阶段
2.词法与语法分析阶段
3.编译阶段,首先编译成纯汇编语句,再将之汇编成跟CPU相关的二进制码,生成各个目标文件
4.连接阶段。
- 预处理、编译、连接、运行
- 预处理、编译、连接、运行
- c进行预处理、编译、连接、运行是做什么
- c进行预处理、编译、连接、运行是做什么
- c进行预处理、编译、连接、运行是做什么
- 预处理+编译+汇编+连接
- 预处理--》编译--》运行的区别
- C++学习体会--预处理,编译过程,连接过程
- c程序的预处理,编译,连接过程。
- linux下的预处理--编译--汇编---连接
- 19-20-预处理、编译、汇编、连接
- 编译/连接/运行
- vs2010实现编译连接运行
- 程序的处理步骤——预处理、编译、链接、运行
- linux预处理、编译、汇编、链接和运行的过程
- 程序的处理步骤-------预处理、编译、链接、运行
- 编译预处理
- 编译预处理
- Android:使用密码技术安全地保存凭证
- ARM syslog
- 如何调试makefile
- 23种设计模式(3):抽象工厂模式
- Hadoop的Python语言封装
- 预处理、编译、连接、运行
- 学习笔记:神秘的 IOCP 完成端口
- jsp 微信公众平台 token验证
- DMA与 kmallloc
- 串口隔离还是有些犹豫
- QT4 编译错误 error: collect2: ld returned 1 exit status
- PE格式详解2 --系统篇
- Linux七天系列------之一
- 分享开发 Android 手机应用的开发经验——QR生成器