GCC
| -o | 生成指定名字可执行文件 gcc hello.c -o hello | ||
| -c | 只编译,生成.o目标文件 gcc -c hello.c | ||
| -g | 产生调试工具gdb所必要的符号信息 gcc -g hello.c -o hello | ||
| -O | 对程序进行优化编译、链接,可提高编译、链接速度 | ||
| -O2 | 优化更加彻底,不过编译时间更长 | ||
| -I | -I dirname 引入编译需要的头文件目录 | ||
| -L | -L dirname 引入编译需要的库文件目录 | ||
| -l | -lname 引入库函数 eg.数学库 libm.a 用 -lm | ||
| -static | 静态链接,编译后文件变大 静态链接.a后缀 动态链接.so后缀 gcc -static mathTest.c -o mathTest -lm | ||
| -Wall | 生成所有警告信息 | ||
| -w | 不生成任何警告 | ||
| -DMACRO | 定义MACRO宏
|
GDB
| list(l) | 显示程序 |
| break(b) 函数名 | 在函数入口处打断点 b main |
| break(b) 行号 | 指定行打断点 b 6 |
| break(b) 文件名:行号 | 在指定文件的指定行加断点 |
| break(b) 行号 if 条件 | 当条件为真,指定行号断点生效 |
| info break | 查看所有断点 |
| delete 断点编号 | 删除断点 |
| run(r) | 开始运行程序 |
| next(n) | 单步运行程序,不进入子函数 |
| step(s) | 但不运行程序,进入子函数 |
| continue(e) | 继续运行程序 |
| print(p) 变量名 | 显示变量的值 |
| finish | 运行程序,直到函数结束 |
| watch 变量名 | 对指定变量进行监控 |
| quit(q) | 退出gdb |
本文详细介绍了GCC编译器的各种实用选项,包括生成指定名字的可执行文件、仅编译生成目标文件、生成调试信息等,并且讲解了如何使用GDB进行断点设置、单步调试及变量监控等高级调试操作。
368

被折叠的 条评论
为什么被折叠?



