Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Makefile 为什么不';我不认识我的变量?_Makefile - Fatal编程技术网

Makefile 为什么不';我不认识我的变量?

Makefile 为什么不';我不认识我的变量?,makefile,Makefile,我有一个简短的Make脚本,如果我自己手动将Build目录作为字符串而不是变量放入其中,它就可以工作: CC = gcc CFLAGS = -O2 -g -Wall -fmessage-length=0 LDFLAGS = SRCDIR = Src BUILDDIR = Build SRCS = $(SRCDIR)/Main.c OBJS = $(SRCS:.c=.o) LIBS = TARGET = HelloWorld all: dir $(SRC) Build/$(TARGET) d

我有一个简短的Make脚本,如果我自己手动将Build目录作为字符串而不是变量放入其中,它就可以工作:

CC = gcc
CFLAGS = -O2 -g -Wall -fmessage-length=0
LDFLAGS =
SRCDIR = Src
BUILDDIR = Build 
SRCS = $(SRCDIR)/Main.c
OBJS = $(SRCS:.c=.o)
LIBS =
TARGET = HelloWorld

all: dir $(SRC) Build/$(TARGET)

dir:
    mkdir -p $(BUILDDIR)

Build/$(TARGET): $(OBJS) 
    $(CC) $(LDFLAGS) $(OBJS) -o $@

$(SRCDIR).c.o:
    $(CC) $(CFLAGS) $< -o $@

clean:
    rm -f $(OBJS) $(TARGET)
当我更换线路时:

all: dir $(SRC) Build/$(TARGET)
与:


为什么Make不将
$(BUILDDIR)
子句替换为
Build

在您的代码中,Build之后有一个空格

BUILDDIR = Build 

在您的代码中,在构建之后有一个空格

BUILDDIR = Build 

在您的代码中,在构建之后有一个空格

BUILDDIR = Build 

在您的代码中,在构建之后有一个空格

BUILDDIR = Build