Makefile 如果不存在文件,则创建软链接
时间: 2023-11-22 10:54:05 浏览: 59
可以使用以下 Makefile 来实现:
```
# 定义目标文件和软链接的名称
TARGET := target_file
LINK := link_file
# 判断目标文件是否存在,如果不存在则创建
ifeq ($(wildcard $(TARGET)),)
$(shell touch $(TARGET))
endif
# 判断软链接是否存在,如果不存在则创建
ifeq ($(wildcard $(LINK)),)
$(shell ln -s $(TARGET) $(LINK))
endif
```
在这个 Makefile 中,我们使用了 `wildcard` 函数来判断目标文件和软链接是否存在。如果不存在,则使用 `touch` 命令创建目标文件,并使用 `ln -s` 命令创建软链接。
要使用这个 Makefile,只需要在命令行中执行 `make` 命令即可。如果目标文件和软链接都不存在,它们都会被创建。如果它们已经存在,则不会执行任何操作。
相关问题
makefile中判断文件不存在
在Makefile中可以使用函数`$(wildcard)`来判断文件是否存在。该函数可以返回一个或多个匹配指定模式的文件名列表,如果没有匹配项,则返回空字符串。
下面是一个例子,假设要判断文件`file.txt`是否存在:
```
ifeq ($(wildcard file.txt),)
# 文件不存在的情况下执行的命令
echo "File does not exist."
else
# 文件存在的情况下执行的命令
echo "File exists."
endif
```
在上述代码中,`$(wildcard file.txt)`会返回一个列表,如果匹配到了`file.txt`,则列表中会包含该文件名,否则返回空字符串。通过`ifeq`语句可以判断该列表是否为空,从而确定文件是否存在。
ubuntu makefile文件创建
在Ubuntu中创建makefile文件的步骤如下:
1. 打开终端,进入要创建makefile文件的目录。
2. 创建一个空的文件,文件名为Makefile(注意大小写)。
3. 在Makefile文件中编写规则,规则由目标、依赖和命令三部分组成。例如:
target: dependency1 dependency2
command1
command2
其中,target表示目标文件,dependency1和dependency2表示依赖文件,command1和command2表示生成目标文件的命令。
4. 保存Makefile文件。
5. 在终端中输入make命令,即可根据Makefile文件中的规则生成目标文件。
注意:在编写Makefile文件时,需要注意缩进,命令部分必须以Tab键开头。