【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
原创粉丝点击