gpt4 book ai didi

c++ - patsubst 不能在 GNU make 中工作?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:28:21 26 4
gpt4 key购买 nike

我在 Windows 8 上使用 GNU make 来了解 makefile。我所指的教程是为 Linux 编写的,因此我正在更正据我所知给出的 makefile,例如用“\”等替换“/”

我的 makefile 内容是:

CC=g++
INCLIST=functions.h
INCDIR=..\include
OBJDIR=.\obj
BINDIR=..\bin
_OBJLIST = main.o
OBJ=$(patsubst %,$(OBJDIR)\%,$(_OBJLIST))

all: main.o

main.o: main.cpp
$(CC) -c -I $(INCDIR) main.cpp -o $(OBJ)

我可以手动编译main.cpp

g++ -c -I ..\include main.cpp -o .\obj\main.o

但是,当我运行 make 时,输出是:

g++ -c -I ..\include main.cpp -o .\obj%

并且目标文件是在当前目录而不是 .\obj 目录中创建的,并且被命名为 ./obj% 而不是必需的 main.o。我在 Ubuntu 上运行了相同的设置并且运行良好,任何人都可以解释为什么吗?

谢谢..:)

最佳答案

反斜杠是一个转义标记,所以\% 是一个百分号。此外,/也适用于 Windows。

关于c++ - patsubst 不能在 GNU make 中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15704662/

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