如何设置Makefile来处理一个目录中的所有文件,将输出重定向到另一个目录(每个输入文件一个输出文件)? 我有:

INPUTS := $(wildcard ./input/*.txt)
OUTPUTS := $(patsubst %.out,%.txt,$(wildcard ./input/*.txt))

$(OUTPUTS): $(INPUTS)
    python process.py $@ > ./output/${@:%.txt=%.out}

...但它会继续重新生成./output中已经存在的文件。

===============>>#1 票数:4 已采纳

像这样写:

INPUTS := $(wildcard ./input/*.txt)

# Create a list of all the output files you want to generate
OUTPUTS := $(patsubst ./input/%.txt,./output/%.out,$(INPUTS))

# The default is to build all the OUTPUTS files
all: $(OUTPUTS)

# Tell make how to build a single output file
./output/%.out : ./input/%.txt
        python process.py $< > $@

  ask by Puzzled79 translate from so

未解决问题?本站智能推荐:

1回复

测试makefile中是否存在另一个目录中的文件

一个如何在指定位置的目录中查找具有某个扩展名(在本例中为.cpp)的文件的存在,该目录比makefile的位置低几个目录? 我想打印(回显)一条消息,如果找到它们
2回复

将obj文件输出到Makefile中的obj目录

嗨,我通过修改以下示例来编写此Makefile: https : //sites.google.com/site/michaelsafyan/software-engineering/how-to-write-a-makefile 它以以下方式工作。 下面的类被编译为可执行文件“ my
1回复

Makefile-如何将所有子目录中的对象链接到另一个?

我正在为一个项目编写一个makefile框架。 说,我在顶部目录中有一个main.c,还有许多子目录,每个子目录都包含一个C文件。 为了链接所有目标文件,我在顶部makefile中分配了一个初始值: 然后在每个子目录中,将它们附加到列表中: 返回顶部目录时,TARGET_LI
1回复

如何使用makefile编译另一个目录中的.o文件?

我在不同目录中有多个源文件。 现在,我要将其对象编译到其他目录中。 我该怎么做? 我尝试了这个但是它给了我错误 它成功构建了一个check_format.o文件,但为另一个.o文件给出了错误
1回复

Makefile读取另一个目录

我有一个C ++项目。 在我的Project文件夹中,我有三个子项目文件夹。 我的所有子项目都使用ShareAll.o文件。 在Sub_Proj1中,我有一个生成文件。 该makefile需要查找位于其父目录中的ShareAll.o。 我尝试了以下代码。 此makefil
1回复

从另一个目录中的makefile调用python脚本

我有一个makefile文件,该文件调用一个与makefile文件位于同一目录中的python脚本。 它工作正常。 在生成文件#1中: 现在,我在另一个目录中有另一个生成文件,并希望从中调用第一个生成文件。 在生成文件#2中: 问题是,当脚本运行时,它就像在与makefi
1回复

将Makefile设置为在另一个目录中构建

可以说我的Makefile与源文件位于同一目录中,我想将目标文件存储在obj /子目录中,将目标可执行文件存储在bin /子目录中。 我的Makefile的问题在于,我无法使OBJECTS变量包含* .o文件的列表,这些文件的samy名称为* .cpp文件,但位于OBJDIR子目录中。
1回复

在另一个目录中构建Hugo的Makefile无法正常工作

我在根目录中有一个Makefile,并且在该目录中有一个Hugo安装,因为出于我的目的,它必须采用这种方式。 当我运行我的Makefile到cd到Hugo目录并进行构建时,它做得不好。 它将创建公用文件夹,但不会完全构建 结果: 预期结果(当我手动执行时):
4回复

nmake Makefile将目标文件放在一个单独的目录中

我在Source文件夹中有我的所有源文件,makefile位于Makefile文件夹中,我希望所有目标文件都放在Objects文件夹中。 这是一个我正在研究的C项目。 所有这三个文件夹都位于名为Project的文件夹中。 Project文件夹包含:Source Makefile对象
1回复

Makefile:从目录编译到另一个目录

我正在尝试使用Makefile来编译位于src/code/*.cpp .cpp的一堆.cpp文件,然后在build/编译每个*.o ,最后生成build/那些文件。 我已经阅读了一些我尝试使用的答案,但遇到了我不理解的问题。 我得到以下错误,我不知道为什么: 我还看到,在尝