【GCC】从hello.c到可执行文件的过程之预处理阶段
来源:互联网 发布:js获取下一天的日期 编辑:程序博客网 时间:2024/05/29 14:11
在Linux中,使用GCC编译程序的过程可以被分为四个阶段:
1、预处理(Preprocessing)
2、编译(Compilation)
3、汇编(Assembly)
4、链接(Linking)
在这里我们介绍预处理过程。
首先写一个简单的代码:hello.c
预处理阶段实现的功能主要有三个:
①加载头文件
②进行宏替换
③条件编译
1、加载头文件
相应命令:
“gcc –E hello.c”
“gcc –E hello.c > hello.i”
“gcc –E hello.c –o hello.i”
①对于“gcc -E hello.c”,输入命令如下
可以看出生成的文件代码直接输出到屏幕,并且此时只有“hello.c”文件。
②对于“gcc -E hello.c > hello.i”
可以看到此时生成了名为“hello.i”的文件。“hello.i”文件代码有很多行,截取最后一部分如下图所示:
2、进行宏替换
将“hello.c”改为如下图所示代码:
进行预处理,打开“hello.i”,截取最后一部分内容如下,可以看到此时已经进行了宏替换。
3、条件编译
将“hello.c”改为如下图所示代码
进行预处理,打开“hello.i”,截取最后一部分内容如下图所示,可以看到此时已经条件编译。
需要注意的是预处理阶段不做语法检查。
1 0
- 【GCC】从hello.c到可执行文件的过程之预处理阶段
- 从.c文件到可执行文件的四个阶段
- 从C源代码到可执行文件的总体过程框架
- 从C源代码到可执行文件的总体过程框架
- 从源代码到可执行文件的过程
- c源代码到可执行文件的过程
- c源代码到可执行文件的过程
- C源程序到可执行文件的四个过程
- C 源程序到可执行文件的过程
- C源文件到可执行文件的过程
- GCC编译hello.c的详细过程
- C/C++程序从编译到最终生成可执行文件的过程分析
- C/C++程序从编译到最终生成可执行文件的过程分析
- c语言从一个源代码文件到生成可执行文件的过程
- C/C++程序从编译到最终生成可执行文件的过程分析
- C/C++程序从编译到最终生成可执行文件的过程分析
- C/C++程序从编译到最终生成可执行文件的过程分析
- C/C++程序从编译到最终生成可执行文件的过程分析
- 查找算法总结
- spring+mybatis整合
- maven和ant区别
- 解决 Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'
- Some Command
- 【GCC】从hello.c到可执行文件的过程之预处理阶段
- hdu 1305 Immediate Decodability 字典树
- Cocos2d-x 2.x、3.x读书摘要(2016-6-25 07:18)
- The linux bridge has disabled IPv6
- 重设浏览器默认样式
- css布局通用类
- ScrollView + 自定义cell 组合(实现复用)
- linux之设置单网卡多ip
- 今日头条架构演进之路——高压下的架构演进专题(含PPT)