我制作了一个简单的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.
所以我想问一个解决这个问题的方法。不管怎样,谢谢!
答案 0 :(得分:0)
使用vpath
指令指定查找源的位置。
vpath %.cpp $(SOURCE_PATH)
SOURCES=$(wildcard *.cpp)
OBJECTS=$(SOURCES:.cpp=.o)