GCC的浅层理解
2016-07-06 20:35
302 查看
gcc的工作流程
1.预处理
预处理阶段时不做语法检查而是执行以下步骤
a.头文件展开
b.进行宏替换
c.进行条件编译
总的来说就是“#”开头的代码在这一过程中编译
gcc -E test.c > test.i /*对源文件test.c进行预处理并生成预处理文件test.i */
2.编译
编译时进行下列分析
1.词法分析,主要负责检查关键字、标识符是否准确
2.语法分析,主要负责检查程序中语句的语法是否准确
3.语义分析,主要负责检查程序中语句的逻辑意义是否正确
gcc -c test.o
3.汇编
把汇编程序翻译成CPU可识别的二进制文件,成为目标文件
gcc -S test.c /*生成test.s文件*/
4.链接
链接的过程实际上为了解决多个文件之间符号引用的问题。因为编译时只对单个文件进行编译,若遇到文件里需要引用到其他文件中的符号,则需要确定其他文件的地址,从而将目标文件和库文件链接在一起形成可执行文件。
相关文章推荐
- 在Windows平台下使用安装GCC(图)
- linux使用gcc编译c语言共享库步骤
- C/C++编译器GCC下的常用编译命令总结
- GCC 编译c程序的方法及过程解析
- Glusterfs的编译选项 #pragma GCC poison system popen
- 【笔记】CentOS上源码安装GCC 4.8.2
- 【笔记】CentOS
- Java调用动态链接库
- RHEL 4.7 (64bit) 环境安装 GCC 4.6 测试记录 (更新至gcc-4.6.1)
- GCC 5 即将发布
- [转载]Visual Studio, GCC, Clang, Intel 对 C++11 特性的支持一览表
- C++爱好者博客
- gcc工具的运用
- gdb的运用
- GCC内联汇编(1)Get started
- GCC内嵌汇编
- g++编译 参数 .
- RHEL5.3 gcc rpm包安装
- linux GCC 64位编程技巧