gcc 编译可以执行程序4步分析
预处理:头文件展开,宏替换,注释去掉
编译:检查语法错误,将c语言变成汇编语言,消耗时间和系统资源最多
汇编:将汇编语言变成 二进制指令
链接:数据段合并以及地址回填,将函数库中相应的代码组合到目标文件中

gcc编译参数
gcc nginx.c -o b.out -I /home/hunandede/head/ -g
gcc nginx.c 意思是直接生成 .out文件,可以认为是执行了 gcc -E,gcc -S,gcc-c, 最后执行 gcc,只是中间没有生成C文件,汇编文件,二进制文件,直接生成了a.out可执行文件。
-o 的意思是给编译出来的可执行文件命名为 b.out.
-I 表示指定头文件的位置,在 /home/hunandede/head/下,-I 和 头文件位置中间没有空格。I 是大爱,不是L
-g 表示 包含调试信息。加上-g 就可以使用GDB工具调试了。
-Wall 提示更多的警告信息,假设代码中我们有一个int a ,但是这个a 从来没有使用过,就会有警告在编译阶段出现。 这个一般也

本文详细介绍了gcc编译器的工作步骤,包括预处理(头文件展开、宏替换、注释去除)、编译(语法检查和代码转换)、汇编(生成二进制指令)和链接(数据合并与地址分配)。同时讨论了gcc编译参数的应用,如头文件路径指定、调试信息添加和编译时宏定义的使用,以及可能遇到的错误和解决方法。
最低0.47元/天 解锁文章
6254

被折叠的 条评论
为什么被折叠?



