23>>gcc-gdb-makefile

man gcc is pretty good.

gcc:

-E:  只进行预处理

-S:  预处理和编译

-c:  预处理,编译和汇编

-g:  将gdb调试信息添加到可执行文件中

-save-temps:  保存中间文件

-Idirectory:  在包含文件搜索路径的起点处添加指定目录

-Ldirectory:  增加库文件的搜索路径

-library:   提示链接程序在创建最终可执行文件时包含指定的库

-O,-O2,-O3:  将优化状态打开,不能和-g参数一起使用

-Wall:    启动所有警报

-w:    禁止所有警报

-Werror-Wall:    在发生警报时取消编译操作

-Dmacro:    使用指定的宏,使他通过源码中的#ifdef进行校验

-v:    gcc版本信息

 -std=c99  ;使用c99标准,默认是 c89

 

 

 

 

gdb:

gdb program <core>/<PID>

break 16:      设置断点

break func:      在函数处设置断点

bt:        查看函数堆栈

r:        运行程序

l 1:        从第一行列出程序

s:        单步执行程序

c:      继续程序,直到新的断点

p result:      打印出当前的sum值

n:

finish:      退出子程序

q:        退出调试

 

 

 

 

 

 

 

 

makefile:

 

内置宏:

$<:      第一个依赖文件名称

$+:      所有依赖文件,可能重复

$^:      所有不重复的依赖文件

$?:      所有时间戳比目标文件晚的依赖文件

$*:       不包含扩展名的目标文件

$@:      目标文件的完整名称

 

隐藏规则:

proc.o:proc.c code.h  ==> proc.o:proc.c code.h \n   gcc -c proc.c -o proc.o

 

你可能感兴趣的:(makefile)