当前位置: 技术问答>linux和unix
makefile中的问题 $(AR) cqv $@ $(LIBOBJS) 不理解
来源: 互联网 发布时间:2016-06-03
本文导语: 下面是adns模块的makefile文件,有些地方不是很理解,请教一下。 首先是:$(AR) cqv $@ $(LIBOBJS)构造库是怎么构造的,cqv参数是什么还以,$@指哪些 第二是,定义了CC=gcc,但似乎没有使用,为什么? CC=gcc CFLAGS=-O3 -Wall -D_REENTRANT ...
下面是adns模块的makefile文件,有些地方不是很理解,请教一下。
首先是:$(AR) cqv $@ $(LIBOBJS)构造库是怎么构造的,cqv参数是什么还以,$@指哪些
第二是,定义了CC=gcc,但似乎没有使用,为什么?
CC=gcc
CFLAGS=-O3 -Wall -D_REENTRANT
TARGETS=libadns.a
LIBOBJS=types.o event.o query.o reply.o general.o setup.o transmit.o
parse.o poll.o check.o
ALLOBJS=$(LIBOBJS)
libadns.a: $(LIBOBJS)
rm -f $@
$(AR) cqv $@ $(LIBOBJS)
clean:
rm -f $(LIBOBJS) libadns.a *~
$(LIBOBJS): adns.h internal.h config.h
|
1.
man ar
q Quick append;
c Create the archive.
v This modifier requests the verbose version of an operation.
$@ 是规则中的目标(target), 此处指libadns.a
2. CC=gcc的用途是制定C语言编译器,.c.o 的规则里会用$(CC)
man ar
q Quick append;
c Create the archive.
v This modifier requests the verbose version of an operation.
$@ 是规则中的目标(target), 此处指libadns.a
2. CC=gcc的用途是制定C语言编译器,.c.o 的规则里会用$(CC)