1. 编译工具链及作用:
2. gcc编译器将.c源文件生成可执行程序,经历的四个步骤:
3. gcc常用选项
选项 | 作用 |
---|---|
-o filename | 指定生成的输出文件名为filename |
-E | 只进行预处理 |
-S(大写) | 只进行预处理、编译 |
-c(小写) | 只进行预处理、编译、汇编 |
-g | 包含调试信息 |
-On(n=0, 1, 2, 3) | 编译优化,n越大优化越多 |
-Wall | 显示所有警告信息 |
-D | 编译时定义宏 |
示例:
(1)预处理:
gcc -E hello.c -o hello.i
(2)编译:
gcc -S hello.i -o hello.s
(3)汇编:
gcc -c hello.s -o hello.o
(5)链接: (不指定生成的文件名,则默认为a.out)
gcc hello.o -o hello
(6)实际上,一步到位:
gcc hello.c -o hello
(7)-D使用示例:
hello.c文件:
#include<stdio.h>
int main() {
#ifdef DEBUG
printf("My debug.\n");
#endif
printf("Hello world!\n");
return 0;
}
直接编译,执行结果为:
gcc hello.c
编译时定义宏DEBUG,执行结果为:
gcc hello.c -DDEBUG -o hello