目录:
前言:
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文件