从源文件生成目标文件的通用“make”规则
Posted
技术标签:
【中文标题】从源文件生成目标文件的通用“make”规则【英文标题】:Generic `make` rule for generating object files from source files 【发布时间】:2014-03-08 19:43:38 【问题描述】:我将所有源文件都放在一个名为src
的目录中,我希望将所有目标文件放在一个目录obj
中。是否可以编写一个通用的make
规则(最好也适用于nmake
),它将生成与源文件对应的目标文件并将其放置在正确的目录中?
【问题讨论】:
在例如 GNU make 中执行此操作很简单。我不知道如何在 nmake 中做到这一点。 @MadScientist 我该怎么做?我只找到了.c.o
语法,它将 C 源代码转换为同一目录中的目标文件。
【参考方案1】:
对于 GNU make,您可以使用模式规则,如下所示:
SRCDIR = src
OBJDIR = obj
$(OBJDIR)/%.o : $(SRCDIR)/%.c
$(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $<
【讨论】:
【参考方案2】:借助 nmake,您可以使用带有路径的推理规则:
src\.cobj\.obj:
$(CC) $(CFLAGS) -c -o $@ $<
【讨论】:
以上是关于从源文件生成目标文件的通用“make”规则的主要内容,如果未能解决你的问题,请参考以下文章