UNIX系统编程-day3
UNIX系统编程-day3
Makefile
三要素:1. 目标 2. 依赖 3. 规则命令
写法:
目标:依赖
命令
变量使用:$(变量名)
函数:
wildcard 可进行文件匹配
patsubst 内容替换
变量:
- $@ 代表目标
- $^ 代表全部依赖
- $< 第一个依赖
- $? 第一个变化的依赖
模板:
#get all .c files
SrcFiles=$(wildcard *.c)
#all .c files --> .o files
ObjFiles=$(patsubst %.c,%.o,$(SrcFiles))
all:app app1
app:$(ObjFiles)
gcc -o $@ -I ./include $(ObjFiles)
app1:$(ObjFiles)
gcc -o $@ -I ./include $(ObjFiles)
#模式匹配规则,$<,$@ 这种只能出现在规则里
%.o:%.c
gcc -c $< -I ./include -o $@
.PHONY: clean all
clean:
-@rm -f *.o
-@rm -f app app1
gdb调试
在编译时添加-g选项
- run 启动程序
- start 启动程序,在main入口停止
- n next,单步执行
- step 单步执行,试图进入函数内部,库函数无法进入。
- quit 退出gdb
- 设置启动参数 set args xx xx
- list 默认显示10行代码。 回车继续显示11-20的代码 list file 显示file文件
- b
b n 在n行设置断点
b func 在函数设置断点 b file:10 在file文件的第十行设置断点
b line if i == 1 只有i==1时才断 - info b 显示所有断点 d 断点号 删除断点
- c continue 跳到下一个断点。
- p var 打印变量信息
- set
set argc = 4;
set argv[1] = "lskdjf"
set argv[2] = "3" - display 显示变量的值,用于追踪。
- undisplay n 删除编号为n的display的值,要先info display获取编号
- gdb app core 能直接告诉你事发现场
每一篇博客,不为别的,证明我的成长。每一次发文,不为别的,证明我严阵以待。蜗牛爬得很慢,却终有一日登上参天大树。因为它热爱。

浙公网安备 33010602011771号