makefile - 不同目录中文件的模式规则?

标签 makefile gnu-make

我经过一番努力编写了以下模式规则

%.o : $(addprefix $(SRCDIR),$(notdir $(@:.o=.f90)))
        $(COMPILE) $(addprefix $(SRCDIR),$(notdir $(@:.o=.f90))) -o $@

SRCDIR 是找到相应源代码文件的位置。目标文件和源代码文件位于不同的目录中,目标文件名包含它们的路径。因此,对于每个目标文件,源代码文件名是通过文本替换获得的,并以 SRCDIR 为前缀。

我怎样才能更简洁地做到这一点?

谢谢。

最佳答案

您的问题有点不清楚,但也许这就是您正在寻找的:

$(OBJDIR)/%.o: $(SRCDIR)/%.f90
    $(COMPILE) $< -o $@

关于makefile - 不同目录中文件的模式规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38110010/

相关文章:

c++ - 在 Windows 7 中通过 GnuWin32 使用 Microsoft Visual C/C++ 编译器编译源 (.C) 文件时出错

makefile - 是否可以过滤静态模式规则中的先决条件?

makefile - 如何编写Makefile以使用GNU Make自动检测并并行化构建?

c - 指定 C 程序在同一库中弹出 Python 程序的路径的好方法是什么?

bash - 在 make 中取消设置变量时获取默认值

makefile - 如何将目标文件放置在单独的子目录中

c++ - Makefile:编译 src 和测试目录时出错

java - 无法执行二进制文件 - 可执行 Jar 文件

makefile - 不使用 CMake 时,在执行之前制作 make 打印命令

bash - Makefile中的Bash 'until'循环语法错误