user-0 提问: 一个Makefile示例中的一些疑问

回复:
user: user-1
content: 引用 5 楼 bai_hei1025 的回复:[quote=引用 3 楼 hnwyllmm 的回复:] http://www.google.com.hk/#newwindow=1&q=Makefile&safe=strict 这里很多介绍很详细  你好，这个之前有看过，但还是有些问题  编译的目标文件是：$(ALL_OBJS) $(ALL_PRGS) 最终输出的目标程序是： $(ALL_PRGS)  这段是否可以简化成： all: $(ALL_OBJS) $(ALL_PRGS)  .c.o: //即.c依赖于.o $(COMPILE) -c -o $@ $< $(SHARED_OBJS) $(LIB_PATH) $(INC_PATH)  不明白为啥写了这么多，特别红色部分有什么用途？ all: $(ALL_OBJS) $(ALL_PRGS) .o: $(COMPILE) -o $@ $<  $(SHARED_OBJS) $(LIB_PATH) $(INC_PATH) .c: $(COMPILE) -o $@ $<  $(SHARED_OBJS) $(LIB_PATH) $(INC_PATH) .c.o: $(COMPILE) -c -o $@ $<  $(INC_PATH) .c.lo: $(COMPILE) -c -fPIC -o $@ $<  $(INC_PATH)[/quote] “.c.o”是一个目标的名字。

user: user-2
content: 引用 7 楼 bijiaoben 的回复:[quote=引用 5 楼 bai_hei1025 的回复:] [quote=引用 3 楼 hnwyllmm 的回复:] http://www.google.com.hk/#newwindow=1&q=Makefile&safe=strict 这里很多介绍很详细  你好，这个之前有看过，但还是有些问题  编译的目标文件是：$(ALL_OBJS) $(ALL_PRGS) 最终输出的目标程序是： $(ALL_PRGS)  这段是否可以简化成： all: $(ALL_OBJS) $(ALL_PRGS)  .c.o: //即.c依赖于.o $(COMPILE) -c -o $@ $< $(SHARED_OBJS) $(LIB_PATH) $(INC_PATH)  不明白为啥写了这么多，特别红色部分有什么用途？ all: $(ALL_OBJS) $(ALL_PRGS) .o: $(COMPILE) -o $@ $<  $(SHARED_OBJS) $(LIB_PATH) $(INC_PATH) .c: $(COMPILE) -o $@ $<  $(SHARED_OBJS) $(LIB_PATH) $(INC_PATH) .c.o: $(COMPILE) -c -o $@ $<  $(INC_PATH) .c.lo: $(COMPILE) -c -fPIC -o $@ $<  $(INC_PATH)[/quote] 楼主真的看了吗？ http://scc.qibebt.cas.cn/docs/linux/base/%B8%FA%CE%D2%D2%BB%C6%F0%D0%B4Makefile-%B3%C2%F0%A9.pdf 搜索一下SUFFIXES关键字，好好读一下老式风格的后缀规则。 还有.c.o:是指的.o依赖于.c[/quote] 这位大侠，这个我还真没有看过，领教啊，老式风格..........

user: user-3
content: 引用 5 楼 bai_hei1025 的回复:[quote=引用 3 楼 hnwyllmm 的回复:] http://www.google.com.hk/#newwindow=1&q=Makefile&safe=strict 这里很多介绍很详细  你好，这个之前有看过，但还是有些问题  编译的目标文件是：$(ALL_OBJS) $(ALL_PRGS) 最终输出的目标程序是： $(ALL_PRGS)  这段是否可以简化成： all: $(ALL_OBJS) $(ALL_PRGS)  .c.o: //即.c依赖于.o $(COMPILE) -c -o $@ $< $(SHARED_OBJS) $(LIB_PATH) $(INC_PATH)  不明白为啥写了这么多，特别红色部分有什么用途？ all: $(ALL_OBJS) $(ALL_PRGS) .o: $(COMPILE) -o $@ $<  $(SHARED_OBJS) $(LIB_PATH) $(INC_PATH) .c: $(COMPILE) -o $@ $<  $(SHARED_OBJS) $(LIB_PATH) $(INC_PATH) .c.o: $(COMPILE) -c -o $@ $<  $(INC_PATH) .c.lo: $(COMPILE) -c -fPIC -o $@ $<  $(INC_PATH)[/quote] 楼主真的看了吗？ http://scc.qibebt.cas.cn/docs/linux/base/%B8%FA%CE%D2%D2%BB%C6%F0%D0%B4Makefile-%B3%C2%F0%A9.pdf 搜索一下SUFFIXES关键字，好好读一下老式风格的后缀规则。 还有.c.o:是指的.o依赖于.c

user: user-2
content: 引用 5 楼 bai_hei1025 的回复:[quote=引用 3 楼 hnwyllmm 的回复:] http://www.google.com.hk/#newwindow=1&q=Makefile&safe=strict 这里很多介绍很详细  你好，这个之前有看过，但还是有些问题  编译的目标文件是：$(ALL_OBJS) $(ALL_PRGS) 最终输出的目标程序是： $(ALL_PRGS)  这段是否可以简化成： all: $(ALL_OBJS) $(ALL_PRGS)  .c.o: //即.c依赖于.o $(COMPILE) -c -o $@ $< $(SHARED_OBJS) $(LIB_PATH) $(INC_PATH)  不明白为啥写了这么多，特别红色部分有什么用途？ all: $(ALL_OBJS) $(ALL_PRGS) .o: $(COMPILE) -o $@ $<  $(SHARED_OBJS) $(LIB_PATH) $(INC_PATH) .c: $(COMPILE) -o $@ $<  $(SHARED_OBJS) $(LIB_PATH) $(INC_PATH) .c.o: $(COMPILE) -c -o $@ $<  $(INC_PATH) .c.lo: $(COMPILE) -c -fPIC -o $@ $<  $(INC_PATH)[/quote]  我也不明白，一起研究下，有结果贴出来看看

user: user-0
content: 引用 3 楼 hnwyllmm 的回复:http://www.google.com.hk/#newwindow=1&q=Makefile&safe=strict 这里很多介绍很详细  你好，这个之前有看过，但还是有些问题  编译的目标文件是：$(ALL_OBJS) $(ALL_PRGS) 最终输出的目标程序是： $(ALL_PRGS)  这段是否可以简化成： all: $(ALL_OBJS) $(ALL_PRGS)  .c.o: //即.c依赖于.o $(COMPILE) -c -o $@ $< $(SHARED_OBJS) $(LIB_PATH) $(INC_PATH)  不明白为啥写了这么多，特别红色部分有什么用途？ all: $(ALL_OBJS) $(ALL_PRGS) .o: $(COMPILE) -o $@ $<  $(SHARED_OBJS) $(LIB_PATH) $(INC_PATH) .c: $(COMPILE) -o $@ $<  $(SHARED_OBJS) $(LIB_PATH) $(INC_PATH) .c.o: $(COMPILE) -c -o $@ $<  $(INC_PATH) .c.lo: $(COMPILE) -c -fPIC -o $@ $<  $(INC_PATH)

user: user-4
content: 搜“跟我一起写makefile”

user: user-2
content: http://www.google.com.hk/#newwindow=1&q=Makefile&safe=strict 这里很多介绍很详细

user: user-5
content: 加美元符号的都是宏定义，前面已经定义过的。

user: user-3
content: Makefile里面的变量使用，楼主了解多少？