当前位置: 技术问答>linux和unix
一个makefile格式问题?知道的告诉我,谢谢
来源: 互联网 发布时间:2015-08-14
本文导语: $ cat makefile CC = gcc OPTIONS = -03 OBJECTS = main.o input.o compute.o SOURCES = main.c input.c compute.c HEADERS = main.h input.h compute.h power: $(OBJECTS) $(CC) $(OPTIONS) -o power $(OBJECTS) -lm main.o:main.h input.h compute.h i...
$ cat makefile
CC = gcc
OPTIONS = -03
OBJECTS = main.o input.o compute.o
SOURCES = main.c input.c compute.c
HEADERS = main.h input.h compute.h
power: $(OBJECTS)
$(CC) $(OPTIONS) -o power $(OBJECTS) -lm
main.o:main.h input.h compute.h
input.o: input.h
compute.o:compute.h
power.tar: makefile $(HEADERS) $(SOURCES)
tar -cvf power.tar makefile $(HEADERS) $(SOURCES)
clean:
rm *.o
$
问题1===>请问是不是makefile里面的宏前要加$,结尾处$,是不是加不加都可以,不加有什么影响,加了有什么好处,
问题2===>OPTIONS = -03及后来的应用 $(CC) $(OPTIONS) -o power $(OBJECTS) -lm,OPTIONS是什么意思?
CC = gcc
OPTIONS = -03
OBJECTS = main.o input.o compute.o
SOURCES = main.c input.c compute.c
HEADERS = main.h input.h compute.h
power: $(OBJECTS)
$(CC) $(OPTIONS) -o power $(OBJECTS) -lm
main.o:main.h input.h compute.h
input.o: input.h
compute.o:compute.h
power.tar: makefile $(HEADERS) $(SOURCES)
tar -cvf power.tar makefile $(HEADERS) $(SOURCES)
clean:
rm *.o
$
问题1===>请问是不是makefile里面的宏前要加$,结尾处$,是不是加不加都可以,不加有什么影响,加了有什么好处,
问题2===>OPTIONS = -03及后来的应用 $(CC) $(OPTIONS) -o power $(OBJECTS) -lm,OPTIONS是什么意思?
|
1.不加$表示字符串本身,而加上$表示它的值。如你的例子:OPTIONS代表了"OPTIONS",而$(OPTINNS)代表了"-O3"。
2.-O3是gcc用的到选项。
2.-O3是gcc用的到选项。
|
$是表示这里引用的是变量的值,后面是不加$的。
OPTIONS就是这里定义的变量。
OPTIONS就是这里定义的变量。