gpt4 book ai didi

makefile - 您可以使用 NMAKE 将通配符分配给变量吗?

转载 作者:行者123 更新时间:2023-12-04 15:10:11 25 4
gpt4 key购买 nike

<分区>

我有 UNIX 背景,所以我习惯于在 GNU/Make 中做这样的事情:

SRC=$(wildcard src/*.c)
OBJ=$(SRC:.c=.o)

all: $(OBJ)
...

我想知道是否可以在 Microsoft NMAKE 中完成大致相同的事情。我有以下简单的 NMAKE Makefile:

all: obj\a.obj obj\b.obj obj\c.obj 

{src\}.c{obj\}.obj:
cl /c $** /Fo$@

这很好用。它从 src/ 获取所有源文件,并将它们编译成它们在 obj/ 中的等价物。但是,我想将默认目标压缩为通配符,如 obj/*.obj,这样我就不必手动写出所有目标文件。

这在 NMAKE 中可能吗?我已经非常彻底地检查了 NMAKE 文档,它似乎没有描述任何我想做的事情。

更新:

我使用公认的 this question 解决方案获得了我想要的效果作为引用,并使用以下 Makefile:

.SUFFIXES: .c .obj

obj_files=$(**:.c=.obj)
all: src\*.c
@$(MAKE) $(obj_files:src=obj)

{src\}.c{obj\}.obj:
cl /c $< /Fo$@

这可以使用 obj\ 子文件夹作为输出目录。 $** 宏在 all 目标中展开。

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