gpt4 book ai didi

makefile - include makefile, (search path) (no ~ expansion)... 是什么意思?

转载 作者:行者123 更新时间:2023-12-04 00:46:48 25 4
gpt4 key购买 nike

今天,当我使用 --debug=v 构建我的项目时,我注意到一些我并不真正理解它的含义。

在他包含“子 makefile”的顶部,有一个奇怪的打印输出告诉我(搜索路径)(无 ~ 扩展)...这是什么意思?

打印输出如下所示:

Reading makefiles...
Reading makefile `Makefile'...
Reading makefile `make_pc.mk' (search path) (no ~ expansion)...
Reading makefile `print_ring/make.mk' (search path) (no ~ expansion)...
Reading makefile `vendor/unity/make.mk' (search path) (no ~ expansion)...
Reading makefile `test01/make.mk' (search path) (no ~ expansion)...

主 Makefile 中使用 include 的行如下所示:

TEST := test01
include $(TEST)/make.mk

包含的 makefile 可能如下所示:

CFLAGS  += -Itest01/
OBJ += test_main.o
test_main.o: test01/test_main.c
@ echo ".compiling"
$(CC) $(CFLAGS) -o $@ $<

是否有更好的方法来处理搜索路径?但是 ~ 会扩展到我的 unix 用户主目录吗?

注意:我在 Linux (Ubuntu) 机器上执行此操作。

注意:所有文件都可以在这个github project中找到.

/谢谢

最佳答案

这些信息中的一些是针对调试 Make 本身的人,而不是调试他们自己项目的构建基础设施的,因此如果它没有真正记录下来或没有特别用于跟踪您自己的构建问题,也就不足为奇了。

也就是说,您可以通过花几分钟阅读 GNU Make 源代码来弄清楚这些是什么意思。

(search path) 是 Make 的内部 RM_INCLUDED 标志,这(我过度总结了)意味着这个 makefile 是通过 include 在另一个文件中遇到的makefile 和 -I 搜索路径可能已经过检查以找到它。

(no ~ expansion) 是其内部的 RM_NO_TILDE 标志,在 Make 的 read.c 中的注释中有解释:

/* Expand ~ in FILENAME unless it came from `include',
in which case it was already done. */

GNU Make 确实 expand ~ to home directories ,并且这个标志阻止它发生两次——我想这可能会对一些非常不寻常的文件系统布局产生影响。

关于makefile - include makefile, (search path) (no ~ expansion)... 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8463750/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com