gcc
语法 : gcc [命令] 源文件
常用命令如下:
1.-c
对文件进行编译和汇编,但不进行连接。即做成了obj文件
2.-o
指定目标名称
gcc -o hello hello.c
3.gcc -I 目录
编译时,优先在指定目录下查找头文件
4.gcc -l 库
此处库为二进制函数的集合体
5.gcc -L 目录
优先访问该目录,未找到目标则前往标准目录,仍未找到则报错
6.-g
编译器在编译时产生调试信息
7.-O(O0/O1/O2/O3)
优化程度不断提高的编译选择
make工具及Makefile
makefile是一系列规则文件,内容格式为:
目标文件:依赖文件
[TAB] 命令
如果gcc命令为:gcc -o hello.c
则对应makefile为:
hello:hello.c
gcc -o hello hello.c
make hello
如果有100个.c文件,则为:
main.o:main.c
gcc -c -o main.o main.c
f1.o:f1.c
gcc -c -o f1.o f1.c
f2.o:f2.c
gcc -c -o f2.o f2.c
... ...
hello:main.o f1.o f2.o ... f100.o
gcc -o hello main.o f1.o ... f100.o
make hello
这样下来,未免有点繁琐,可以使用宏替换、隐式规则推导。
系统定义变量:
$@一个规则中目标名称
$<第一个依赖文件名
$+所有依赖文件
SRCS=main.c f1.c ...
OBJS=main.o f1.o...
hello:$(OBJS)
gcc -o hello $(OBJS)
make hello
gdb
gdb |
vc |
指令功能 |
run | ! | 运行 |
break+行号 | F9 | 设置断点 |
continue | F5 | |
next | F10 | 执行一行源代码但不进入函数内部 |
step | F11 | 执行一行源代码并进入函数内部 |
display/print+变量/表达式 | 窗口 | |
quit | 退出 | |
list | 展示10行代码,可重复指令 |