我试图在可执行编译期间链接我在makefile中构建的所有对象,但我似乎无法自动选择构建目录。
我试过了:
test: $(OBJECTS)
$(CC) $(CFLAGS) $(INCDIR) $(LIBDIR) $(BUILDDIR)/$^ test.cpp -o test.exe
问题是$(BUILDDIR)/$^
仅在第一个目标文件前插入$(BUILDDIR)
。
我该怎么做?
答案 0 :(得分:1)
如果要直接在命令中将$(BUILDDIR)
添加到所有先决条件,则可以执行以下操作:
test: $(OBJECTS)
$(CC) $(CFLAGS) $(INCDIR) $(LIBDIR) $(addprefix $(BUILDDIR)/,$^) test.cpp -o test.exe
但是,以这种方式设置make规则意味着您没有正确跟踪依赖项。我想你真正想要的是:
test: $(addprefix $(BUILDDIR)/,$(OBJECTS))
$(CC) $(CFLAGS) $(INCDIR) $(LIBDIR) $^ test.cpp -o test.exe