如何在makefile规则中更改文件名
我用gcc生成dep没有问题如何在makefile规则中更改文件名,makefile,Makefile,我用gcc生成dep没有问题 %.o: %.c $(CC) -MMD -c $< -o $< 如何使armcc适应gcc代码部分?我尝试下面的代码,但没有帮助,它没有生成.d文件 %.o: %.c armcc --md -depend=$(patsubst %o, %.d, $@) -c @< -o $@ 在编译过程中,我发现甚至我的--md和--dependent选项都没有被应用 %.o: %.c armcc --md -depend=$(@:%.
%.o: %.c
$(CC) -MMD -c $< -o $<
如何使armcc适应gcc代码部分?我尝试下面的代码,但没有帮助,它没有生成.d
文件
%.o: %.c
armcc --md -depend=$(patsubst %o, %.d, $@) -c @< -o $@
在编译过程中,我发现甚至我的--md
和--dependent
选项都没有被应用
%.o: %.c
armcc --md -depend=$(@:%.o=%.d) -c @< -o $@
armcc--md-depend=$(@:%.o=%.d)-c@<-o$@
这将简单地告诉gnumake用object.d
替换object.o
$@
是您的目标吗
%.o=%.d
返回对象文件的*.d名称 在您的patsubst
中,您将%o
替换为%.d
,因此文件foo.o
的结果将是%
匹配foo.
,而不是foo
,输出将是foo..d
而不是foo.d
。此外,我相信应该是$我尝试了这一点,但仍然不能,我在问题中更新了我的结果我认为你的代码是正确的,因为我重新编写了另一个makefile并且它可以工作,我真的不知道为什么在我的第一个makefile中,甚至编译选项都没有应用在规则中
%.o: %.c
armcc --md -depend=$(@:%.o=%.d) -c @< -o $@
armcc -c -o a1.o a1.c
armcc -c -o a2.o a2.c
armcc -c -o a3.o a3.c
armcc -c -o main.o main.c
armlink -o test a1.o a2.o a3.o main.o
%.o: %.c
armcc --md -depend=$(@:%.o=%.d) -c @< -o $@