Makefile 为工作目录设置为此子目录的子目录中的文件制定规则
我在子目录中有一些源文件:Makefile 为工作目录设置为此子目录的子目录中的文件制定规则,makefile,Makefile,我在子目录中有一些源文件: $ ls subdir foo.x bar.x other_file 现在我想创建一个规则,如 subdir/%.y: subdir/%.x cmd $< -a option -o $@ 例如,有没有一种方法可以说$如果您使用的是GNU make,您可以使用$notdir$如果您使用的是GNU make,您可以使用$notdir$您可以分别为文件和目录部分使用F或D后缀 subdir/%.y: subdir/%.x cd $(@D)
$ ls subdir
foo.x bar.x other_file
现在我想创建一个规则,如
subdir/%.y: subdir/%.x
cmd $< -a option -o $@
例如,有没有一种方法可以说$如果您使用的是GNU make,您可以使用$notdir$如果您使用的是GNU make,您可以使用$notdir$您可以分别为文件和目录部分使用F或D后缀
subdir/%.y: subdir/%.x
cd $(@D) && cmd $(<F) -a option -o $(@F)
有关详细信息,请参见。您可以分别为文件和目录部分使用F或D后缀
subdir/%.y: subdir/%.x
cd $(@D) && cmd $(<F) -a option -o $(@F)
有关详细信息,请参阅。如何使用$patsubst
subdir/%.y: subdir/%.x
cd subdir && cmd $(patsubst subdir/%,%,$<) -a option -o $(patsubst subdir/%,%,$@)
或者,等效但更简单的:
subdir/%.y: subdir/%.x
cd subdir && cmd $(<:subdir/%=%) -a option -o $(@:subdir/%=%)
使用$patsubst怎么样
subdir/%.y: subdir/%.x
cd subdir && cmd $(patsubst subdir/%,%,$<) -a option -o $(patsubst subdir/%,%,$@)
或者,等效但更简单的:
subdir/%.y: subdir/%.x
cd subdir && cmd $(<:subdir/%=%) -a option -o $(@:subdir/%=%)