对于c c++这种编译语言是有四个编译过程的。
平常我们使用gcc g++的人知道,直接在linux下使用命令gcc XX.c -o XX就会生成XX可执行文件,其中的三步编译器是帮我们做了,但是有的时候我们可能需要知道这些中间过程,以及这些中间文件的内容。
以gcc 编译c语言为例,假设编译文件为test.c
1.首先 gcc -E test.c -o test.i 使用-E生成.i的文件,这部分是预处理,编译器会把预处理命令替换(例如头文件的展开、宏定义的替换、条件编译的替换)
2.gcc -S test.i -o test.s 使用-S 生成.s 的文件,这部分是汇编,编译器把.i文件进行汇编处理,在里面我们可以看到全是汇编指令堆积的代码
3.gcc -c test.s -o test.c 使用-c生成.c的文件,这部分是二进制处理,编译器把汇编编译成 1 0 这样的二进制文件
4.gcc test.c -o test 使用 .c文件生成可执行文件
关于编译的四个步骤
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 说明本次redis集群安装在rhel6.8 64位机器上,redis版本为3.2.8,redis的gem文件版本为...