【问题标题】:make inference rule for files in a folder为文件夹中的文件制定推理规则
【发布时间】:2010-04-23 09:12:59
【问题描述】:

我使用 GNU make,我希望我的源文件和目标文件位于不同的文件夹中。

作为第一步,我希望源文件位于项目文件夹的根目录中,而目标文件位于子文件夹中(例如 Debug/)。

推理规则是:

.ss.obj:
    echo Assembling $*.ss...
    $(ASSEMBLY) $(2210_ASSEMBLY_FLAGS) $*.ss -o Debug\$*.obj 

但在这种情况下,make 会一直重建所有文件,因为根文件夹中没有 .obj。

有没有办法在.ss.obj 行中包含目标文件夹?

我也试过了:

$(OBJS_WITH_PATH):$(SRC)    
    echo Assembling $<...
    $(ASSEMBLY) $(ASSEMBLY_FLAGS) $< -o $@ 

$(SRC) 是我所有来源的列表,$(OBJS_WITH_PATH) 就是这样构建的:

OBJS_WITH_PATH = $(patsubst %.ss,Debug\\%.obj,$(SRC))

但这会为所有目标文件建立对所有源文件的依赖关系。

我想修改我先写的推理规则,取Debug/*.obj文件。它现在说的是no rule to make target Debug/asdfasdf.obj

【问题讨论】:

    标签: makefile inference


    【解决方案1】:

    使用模式规则:

    Debug/%.obj : %.ss
    

    【讨论】:

      猜你喜欢
      • 2020-06-19
      • 1970-01-01
      • 2019-03-13
      • 1970-01-01
      • 1970-01-01
      • 2014-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多