用Makefile语言实现文件夹A中的所有子文件拷贝到新建的文件夹B中
时间: 2023-08-04 18:03:24 浏览: 51
可以使用以下Makefile代码实现:
```
copy_files:
mkdir -p B
cp -r A/* B/
```
这个Makefile中有一个名为"copy_files"的目标,它执行了两个命令行指令。第一个命令"mkdir -p B"创建了一个名为B的新文件夹,-p选项表示如果文件夹已经存在,则不报错直接跳过。第二个命令"cp -r A/* B/"使用了Linux的cp命令,-r选项表示递归地复制整个目录树。这将把文件夹A中的所有子文件(不包括A文件夹本身)拷贝到新建的文件夹B中。要运行这个Makefile,可以在终端中执行命令"make copy_files"。
相关问题
用Makefile语言实现文件夹A中的所有子文件拷贝到文件夹B中
可以使用以下Makefile代码实现:
```
copy_files:
cp -r A/* B/
```
这个Makefile中有一个名为"copy_files"的目标,它执行了一个命令行指令"cp -r A/* B/",该指令使用了Linux的cp命令,-r选项表示递归地复制整个目录树。这将把文件夹A中的所有子文件(不包括A文件夹本身)拷贝到文件夹B中。要运行这个Makefile,可以在终端中执行命令"make copy_files"。
一个文件夹Makefile中引用本文件夹下的另一个文件夹makefile
可以在当前文件夹的Makefile中使用make命令来调用另一个文件夹的Makefile。具体方法如下:
1. 在当前文件夹的Makefile中定义一个目标,该目标的命令中使用cd命令进入另一个文件夹,然后调用该文件夹的Makefile。示例代码如下:
```
subfolder:
cd path/to/subfolder && $(MAKE)
```
其中,"subfolder"是自定义的目标名称,"path/to/subfolder"是另一个文件夹的路径,"$(MAKE)"表示调用make命令执行该目标的命令。
2. 在当前文件夹的Makefile中使用该目标。示例代码如下:
```
all: subfolder
# 执行其他命令
```
其中,"all"是默认目标,"subfolder"是上一步定义的目标名称。在执行"all"目标时,会先执行"subfolder"目标,然后执行其他命令。
需要注意的是,如果另一个文件夹的Makefile中定义了和当前文件夹中同名的目标,可能会导致冲突。此时可以在调用该目标时使用绝对路径来避免冲突。