gcc命令与gdb命令常用选项

时间:2021-07-23 02:19:01

gcc命令

用法: gcc [选项] [文件名]

选项:

  • -o filename:指定输出文件名称(含路径,可相对,可绝对)
  • -c:只编译不链接,可生成目标文件
  • -S:只编译不汇编,生成汇编代码
  • -E:只进行预编译,不进行其他处理
  • -g:在可执行文件中包含标准调试信息,如果要使用gdb调试,编译时必用此项才可
  • -v:打印出编译器内部编译过程命令行信息和编译器的版本
  • -std=name:指定所使用的编译标准,如c99等
  • -l dir:在头文件的搜索路径列表中添加目录
  • -ansi:支持符合ANSI标准的C程序
  • -pedantic:允许列出ANSI C标准所列出的全部警告信息
  • -w:关闭所有警告
  • -Wall:允许列出gcc提供的所有有用警告信息

  • -L dir:在库文件的搜索路径列表中添加dir目录

  • -static:链接静态库
  • -shared:表明使用共享库

学用命令:

1、编译.c生成可执行文件:

$ gcc -o hello_world hello_world.c

2、编译.c文件生成目录文件:

$ gcc -0 hello_world.o -c hello_world.c

3、链接.o文件生成可执行文件:

$ gcc -o hello_world hello_world.o

4、以c99标准编译.c文件:

$ gcc -std=c99 -o hello_world hello_world.c

5、编译时显示警告信息:

$ gcc -Wall -o hello_world hello_world.c

gdb命令

先决条件:可执行文件要包含标准调试信息,gcc编译一定是此种方式才可:

$ gcc -g [其他选项] [文件名]

使用方式:

$ gdb [可执行文件]

子命令:

  • l(list):查看所载入的文件,后跟行号显示行号附近代码,分页显示,回车换页
  • b(break):设置断点,后可跟行号或者函数名来设置断点,可设多个
  • info b:查看设置的断点情况
  • r(run):从第一行开始运行代码,可以r后面加行号
  • p n:查看变量n的值
  • n(next):单步运行下一步,不进函数
  • s(steep):单步运行下一步,遇函数进函数
  • c(continue):恢复程序的运行,执行剩下的代码
  • quit:退出调试