$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-------