我是Makefile
的新用戶。我必須編寫一個Makefile來構建一個共享庫。Makefile:無法制定目標。 Stop
CC =g++
CFLAGS =-fPIC -Wall -Wextra -c
LDFLAGS =-shared
RM =rm -rf
TARGET_LIB =lib/Automat.so
SRC_DIR =src/
LIB_DIR =lib/
DEP_DIR =dep/
SRCS=IFSM.h IState.h ITransition.h FSM.h State.h Transition.h Wildcard.h PrimeTransition.h SingleTransition.h Exception.h Type.h Error.h
OBJS=$(SRCS:.h=.o)
.PHONY: all
all: $(TARGET_LIB)
$(TARGET_LIB): $(SRC_DIR)$(OBJS)
$(CC) $(LDFLAGS) -o [email protected] $^
$(SRC_DIR)$(SRCS:.h=.d):%.d:$(SRC_DIR)%.h
$(CC) $(CFLAGS) -MM $< > $(DEP_DIR)[email protected]
include $(SRCS:.h=.d)
我的問題是,我得到的錯誤
沒有規則,使目標`IFSM.d」。停止。
如果我從SRCS
刪除文件,IState.d
發生問題。所有其他.d文件,其中builded正確(11 12)。
所有文件都存在,它們被寫入正確(區分大小寫)。
我真的不知道錯誤在哪裏,我現在正在尋找2個小時。
任何幫助將是偉大的。
問候 亞歷
此答案應該是一條評論。另外Make會抱怨在大多數情況下使用空格進行縮進。 – Snps