一 编译器gcc/cc
1 定义宏 -D
取消宏 -U
eg: 若在编译时, 要取消定义某个宏, 而不管其是否已经定义, 可以用-U选项:
gcc -D_DEBUG -U_DEBUG
结果是定义的宏_DEBUG被取消调了.
2 自动生成目标文件(*.o, 且basename与源文件相同)与源文件及源文件所包含的头文件之间的依赖关系
eg: 若 a.c 中有 #include
#include "a.h"
若 a.h 中有 #include "b.h"
(1) cc -M .
cc -M a.c #输出 a.o:a.c a.h b.h
cc -M a.h #输出 a.o:a.h b.h
(2) cc -MM .
gcc -MM a.c #输出 a.o:a.c a.h
gcc -MM a.h #输出 a.o:a.h b.h
若将-MM替换为-M,则输出结果中也包含的系统文件。
3 预编译:
gcc -E -o
4 静态链接
LDFLAGS += -static
阅读(2024) | 评论(0) | 转发(0) |