我有一个C项目,目录结构如下:
我正在尝试将a/b/c/d编译为目标文件并保存到objects目录中,以下是我的Makefile的一部分。
然而,当我尝试运行make时,我得到了以下结果。
src1
-a.c
-b.c
src2
-c.c
-d.c
objects
我正在尝试将a/b/c/d编译为目标文件并保存到objects目录中,以下是我的Makefile的一部分。
src1 = src1/
src1 = src2/
obj = objects/
src1_files = a.c b.c
src2_files = c.c d.c
source_files = $(addprefix $(src1), $(src1_files)) $(addprefix $(src1), $(src2_files))
objects := $(addprefix $(obj), $(src1_files:.c=.o)) $(addprefix $(obj), $(src2_files:.c=.o))
$(obj)%.o: $(source_files)
$(CC) $(CFLAGS) -c $< -o $@
all: $(objects)
然而,当我尝试运行make时,我得到了以下结果。
gcc -Wall -c src1/a.c -o objects/a.o
gcc -Wall -c src1/a.c -o objects/b.o
gcc -Wall -c src1/a.c -o objects/c.o
gcc -Wall -c src1/a.c -o objects/d.o
有人知道为什么会这样吗?
$(addprefix $(src1), $(src2_files)
-->$(addprefix $(src2), $(src2_files)
- Gaurav PathakMakefile
时遇到的问题。我必须执行Makefile
来捕获任何其他问题。! :-| - Gaurav Pathaksrc1 = src2/
(在第二行)。 - Scheff's Cat