【问题标题】:Recursively take obj file for linking递归获取obj文件进行链接
【发布时间】:2017-04-19 14:51:37
【问题描述】:

Makefile 中有一个小问题。每当我写这个时,它都很好用

OBJDIR:=.obj
OBJ := A.o B.o

。 . .

A:  $(OBJDIR)/A.o $(OBJDIR)/B.o
    $(CC) $(CFLAGS) $(INCLUDEDIR) -o $@ $^

编译过程是这样的......

....-g -O0 -DWITH_POSIX -Iinclude/ -o A .obj/A.o .obj/B.o

但是,如果我写这个,它只需要第一个目标文件

A:  $(OBJDIR)/$(OBJ)

然后编译.... ....-g -O0 -DWITH_POSIX -Iinclude/ -o A .obj/A.o B.o

它应该从目录中递归获取。可能我错过了处理这个问题的正确方法。谁有建议,请告诉我。

【问题讨论】:

    标签: c makefile


    【解决方案1】:

    假设您使用的是GNU make

    A: $(addprefix $(OBJDIR)/,$(OBJ))
    A: $(patsubst %,$(OBJDIR)/%,$(OBJ))
    A: $(foreach obj,$(OBJ),$(OBJDIR)/$(obj))
    

    都会做同样的事情。

    【讨论】:

    • 精确。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 2018-10-07
    • 2014-08-26
    • 1970-01-01
    • 2015-05-13
    • 2019-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多