make:***没有规则来制作'all'所需的目标`Arguments.o'。停止

时间:2018-03-24 13:36:08

标签: makefile gnu-make

我制作了一个简单的makefile,这里的内容是:

# Just get cpp files in source folder, and remove ./source/ prefix
SOURCES=$(subst $(SOURCE_PATH)/,,$(shell find $(SOURCE_PATH) -name "*.cpp"))
OBJECTS=$(SOURCES:.cpp=.o)

OUTPUT_NAME=slang

STD=c++14

all: $(OBJECTS)
    $(CC) $(SOURCES) -o$(OUTPUT_PATH)$(OUTPUT_NAME)
%.o: %.cpp
    $(CC) -c -std=$(STD) -I$(INCLUDE_PATH) -L$(LIBRARY_PATH) -o$(TEMP_PATH)$@ $(SOURCE_PATH)$<

还有一些文件夹,但它们只是文件夹的常量。 但是当我运行make时,我看到一个错误:

make: *** No rule to make target `Arguments.o', needed by `all'.  Stop.

所以我想问一个解决这个问题的方法。不管怎样,谢谢!

1 个答案:

答案 0 :(得分:0)

使用vpath指令指定查找源的位置。

vpath %.cpp $(SOURCE_PATH)
SOURCES=$(wildcard *.cpp)
OBJECTS=$(SOURCES:.cpp=.o)