GCC程序编译
基本格式:gcc [options] [filename]
-o 输出可执行文件,如果不给出这个选项,则默认输出a.out可执行文件;如:gcc hello.c -o hello
-c 只编译,不连接为可执行文件,生成为以.o为后缀名的目标文件;如:gcc -c hello.c
-S
只激活预处理和编译,就是指把文件编 译成为汇编代码。如:gcc -S hello.c
-O 优化编译、连接;-O2对-O再进行优化编译、连接;
-g 编译时,对函数库产生符号信息;(注:当在gdb中调试时,这个必选);
-D 定义宏命令;相当于:#denfine
-static 静态链接库文件;一般默认的为动态;
-Wall 生成警告信息;
-w不生成任何警告信息;
GDB程序调试
基本步骤:
1、启动调试;如:gdb filename
2、在指定地方停住程序;
3、程序停住时,可检查程序的状态;
4、退出;
注:如调试,必须在gcc中的选项中加入-g
list(l):查看程序;
break(b):设置断点;可以是函数名、行号、文件名:行号、行号 if 条件;
info break:查看断点;
delete:删除断点,如:delete 断点编号;
run(r):运行;
next(n):单步执行,不进入子函数;
step(s):单步执行,进入到子函数中;
continue(c):继续;
print(p):查看变量;
finish:运行程序,到当前函数结束;
watch:对指定变量进行监控;
quit(q):退出;