makefile问题:“makefile:2: *** 遗漏分隔符 。 停止。”

喜欢而已 提交于 2019-12-10 13:29:01
我们在编写完makefile,然后在终端中
$make
出现“makefile:2: *** 遗漏分隔符 。 停止。”问题,原因是在编写makefile文件时:
all:
     gcc -o helloworld helloworld.c
fresh:
     rm -rf Makefile
clean:
     rm -rf helloworld helloworld.o
install:
     cp helloworld /usr/bin
uninstall:
     rm -rf /usr/bin/helloworld


gcc、rm、cp前面是tab分割符,不能用空格,否则会出现:

“makefile:2: *** 遗漏分隔符 。 停止。”
“makefile:4: *** 遗漏分隔符 。 停止。”
“makefile:6: *** 遗漏分隔符 。 停止。”
“makefile:8: *** 遗漏分隔符 。 停止。”

“makefile:10: *** 遗漏分隔符 。 停止。”




在终端下输入make时出现“makefile:2: *** 遗漏分隔符 。 停止。”问题,原因是编写makefile文件时:

exam:exam.c

gcc -o exam

gcc前一定要 有一个tab分隔符,不能有空格;否则会出现“makefile:2: *** 遗漏分隔符 。 停止。”问题

 

make中规定每一Shell命令之前的开头必须使用字符


以下是一个通用的makefile
#----------------------一个通用的makefile--------------------
########################################################
#直接拷贝到工作目录 下,要求,.h和.c文件均在工作目录下
#直接运行make就可编译出可执行文件,make clean清除
########################################################
#编译器
CC = gcc
FLAG = -g

#需要的链接库名称如 -lm -lcdk -lncurses等
INCLUDE =

#当前目录
CURRENT_DIR += .
#头文件目录
HEADFILE_DIR += /usr/local/include
#生成的可执行文件名称
EXENAME = compileok
########################################################


ADDED_CFLAGS += -I$(CURRENT_DIR) -I$(HEADFILE_DIR)

SRC = $(wildcard *.c)
OBJS = $(patsubst %.c,%.o,$(SRC))

$(EXENAME) : $(OBJS)
$(CC) $(ADDED_CFLAGS) $(FLAG) -o $@ $(OBJS) $(INCLUDE)

$(OBJS) : $(SRC)
$(CC) $(ADDED_CFLAGS) $(FLAG) -c $(SRC) $(INCLUDE)

.PHONY:     clean
clean :
    -rm -rf *.o $(EXENAME)

#----EOF-------

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!