经过一番挣扎之后,我写下了以下模式规则
%.o : $(addprefix $(SRCDIR),$(notdir $(@:.o=.f90)))
$(COMPILE) $(addprefix $(SRCDIR),$(notdir $(@:.o=.f90))) -o $@
Run Code Online (Sandbox Code Playgroud)
SRCDIR是找到相应源代码文件的位置。目标文件和源代码文件位于单独的目录中,并且目标文件名包含其路径。因此,对于每个目标文件,源代码文件名都是通过文本替换获得的,并以开头SRCDIR。
我怎样才能更简洁地做到这一点?
谢谢。
您的问题尚不清楚,但是也许这是您要查找的内容:
$(OBJDIR)/%.o: $(SRCDIR)/%.f90
$(COMPILE) $< -o $@
Run Code Online (Sandbox Code Playgroud)