- gcc
- gcc -v
- gcc --version
- 预编译 : # inlcude<stdio.h>
- #if 1(0)
- #define max 1 -> .i
- 汇编 : .c -> .s
- 编译 : .c/ .i /.s ->.o
- 链接 : .o -> 可执行文件。
- 预处理 gcc -E hello.c 输出到屏幕上
-
gcc -E hello.c > a.txt 输出到文件中
-
gcc -E hello.c -o hello.i *.i 是预处理以后的程序文件。重命名。
-
gcc -E hello.c > /dev/null
- gcc -S 源文件名 -> .s
- 输入两种: .c / .i
- .汇编 gcc -S hello.c 成成 .s 文件
-
它的输入可以是 .c 文件 也可以是 .i 文件。
- gcc -S hello.c gcc -S hello.i
- 编译 gcc -c hello.c 生成 .o 文件 输入可以是.c .i .s 三种文件。目标结果都是.o文件。
- gcc 文件名 -> 默认应用程序a.out
- 重命名 两种格式
- gcc 文件名.c -o 新文件名
- gcc -o 新文件名 源文件名.c
- 如果要调试 gcc -g 源文件名.c
- 反汇编 :
Objdump -D *.o > *.s - 多文件联合编译
gcc 文件1 文件2 -o 新文件名 - 声明函数多了怎么办?
写进头文件中,再包含进来。
27.gdb 调试之前要用gcc -g 选项。
- l: list 查看程序。10行。
- q :退出。
- list 7 查看 7行上下个5行左右的源码。
- list 函数名 查看行数名上下各5行左右的源码。
- b:设置断点
- Info b 查看断点数。
- run : 运行
- 单步调试:不进入函数 单步调试 next / n
-
进入函数单步调试 step /s 有时候是一样的。
- ctrl + l : 清空
- continue / c 结束单步调试。一个是单步调试,一个是运行到断点停止。有断点就停止,否则就一直运行下去。
- print/p p i p n 打印变量的值 n 查看变量的值。
- display + 变量名 观察模式,每次运行的时候都会显示值。