linux编译器gcc/g++的使用,查看编译链接的过程

前言:

gcc ==> 编译C语言
格式:gcc [选项] 要编译的文件 [选项] [目标文件]
g++ ==> 编译C/C++

1.程序的编译过程:预处理,编译,汇编,链接

1.1预处理:展开头文件 宏替换 去掉注释

• 对于gcc或者g++,需要添加命令行参数 -E,生成的文件后缀为 .i
-E:告诉gcc或者g++,在编译过程中,完成预处理之后就停下来

eg:gcc -E test.c -o test.i
在这里插入图片描述

1.2编译:检查语法,语法没有问题生成汇编代码文件

• 对于gcc或者g++,需要添加命令行参数 -S,生成的文件后缀为 .s
-S:告诉gcc或者g++,在编译过程中,完成编译之后就停下来,生成汇编代码,生成一个.s文件

eg:gcc -S test.c -o test.s
在这里插入图片描述

1.3汇编:把汇编代码转成机器代码(二进制代码)

• 对于gcc或者g++,需要添加命令行参数 -c,生成的文件后缀为 .o
-c:告诉gcc或者g++,在编译过程中,完成汇编之后就停下来,生成一个 .o 文件
• .o 文件相当于win当中的目标程序(xxx.obj)

eg:gcc -c test.c -o test.o
在这里插入图片描述

1.4链接:将多个目标程序和库连结在一起,找到相关函数的地址填到调用的地方,生成可执行文件

eg:gcc test.c -o test
在这里插入图片描述
注:./test告诉bash要执行的文件是当前路径下的test文件

猜你喜欢

转载自blog.csdn.net/weixin_50886514/article/details/113760707