admin 管理员组文章数量: 1087139
2024年3月19日发(作者:绝地求生pgc2022赛程)
Makefile之VPATH虚路径使用实例
在Makefile中,VPATH是一个特殊的变量,用于指定make命令在查
找依赖文件时的路径。它允许我们将源文件和依赖文件放在不同的目录中,
从而更好地组织我们的项目结构。
使用VPATH的好处之一是可以将源文件和中间文件分开存放,这样可
以避免在源文件目录中生成大量的中间文件,使项目结构更加清晰。下面
是一个使用VPATH的简单示例:
```
VPATH = src:inc
CC = gcc
CFLAGS = -Iinc -Wall
SRCS = main.c foo.c bar.c
OBJS=$(SRCS:.c=.o)
TARGET = myprogram
$(TARGET):$(OBJS)
%.o:%.c
.PHONY: clean
clean:
rm -f $(OBJS) $(TARGET)
```
在上面的示例中,我们将源文件放在src目录中,头文件放在inc目
录中。通过设置VPATH变量,我们告诉make命令在依赖文件时应该在这
两个目录中查找。
在规则中,我们使用了VPATH变量来指定依赖文件的路径。例如,
$(OBJS)依赖于$(SRCS)中的所有源文件,我们使用了模式规则来将.c文
件转换为.o文件,并在其中使用了VPATH变量。
通过这种方式,我们可以将源文件和依赖文件分开存放,提高代码的
可维护性和可读性。同时,我们也可以在不同的目录中组织代码,使项目
结构更加清晰。
除了指定单个目录外,我们还可以使用冒号分隔的多个目录,例如:
```
VPATH = src:lib:inc
```
这样,make命令将在src、lib和inc目录中依赖文件。
需要注意的是,VPATH只在依赖文件的中生效,而不会影响目标文件
的生成路径。如果我们想要控制目标文件的生成路径,可以使用make的
内置函数dir或notdir来进行处理。例如:
```
OBJS = $(addprefix obj/,$(notdir $(SRCS:.c=.o)))
```
上面的示例中,我们将目标文件存放在obj目录中,通过notdir函
数获取文件名,再通过addprefix函数添加路径前缀。
总结来说,VPATH是一个非常有用的Makefile变量,可以帮助我们
更好地组织项目结构,将源文件和依赖文件分开存放,并在make命令中
指定路径。通过合理使用VPATH,我们可以提高代码的可维护性和可读性,
使项目结构更加清晰。
版权声明:本文标题:Makefile之VPATH虚路径使用实例 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/b/1710790552a573272.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论