makefile問題:「makefile:2: *** 遺漏分隔符 。 中止。」

咱們在編寫完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: *** 遺漏分隔符 。 中止。」
spa




在終端下輸入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-------
編譯器

相關文章
相關標籤/搜索