开发工具与C源代码编译全解析
1. 编译器与链接器标志及目标文件分组
在开发过程中,编译器和链接器标志通常会使用宏来定义,例如:
CFLAGS=$(CFLAGS) $(MYPACKAGE_INCLUDES) $(PNG_INCLUDES)
LDFLAGS=$(LDFLAGS) $(MYPACKAGE_LIB) $(PNG_LIB)
目标文件一般会根据可执行文件进行分组。假设一个包创建了名为 boring 和 trite 的可执行文件,每个文件都有自己的 .c 源文件,并且都需要 util.c 中的代码,可能会有如下定义:
UTIL_OBJS=util.o
BORING_OBJS=$(UTIL_OBJS) boring.o
TRITE_OBJS=$(UTIL_OBJS) trite.o
PROGS=boring trite
Makefile的其余部分可能如下:
all: $(PROGS)
boring: $(BORING_OBJS)
$(CC) -o $@ $(BORING_OBJS) $(LDFLAGS)
trite: $(TRITE_OBJS)
$(CC) -o $@ $(TRITE_OBJS) $(LDFLAGS)
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



