[英]How to link only some files to objects with Makefile (g++)?
我有一個Makefile將源文件編譯為目標文件,並且可以正常工作:
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp
g++ $(FLAGS) $(INCLUDES) -c -o $@ $<
但它包括我src目錄中的所有文件。 假設我有一些我不想包含在編譯中的文件(例如“ x.cpp”)。 我只想手動指定一些文件以編譯成對象。 例如,
SRC = src/one.cpp src/two.cpp
OBJ = obj/one.o obj/two.o
$(OBJ_DIR)/%.o: $(SRC)
g++ $(FLAGS) $(INCLUDES) -c -o $@ $<
我會得到one.o,two.o,但不是xo這有可能嗎?
定義模塊列表,構造您實際想要的對象列表:
MODULES = one two
OBJECTS = $(addprefix ${OBJ_DIR}/, $(addsuffix .o, ${MODULES}))
all : ${OBJECTS}
將規則限制為列表中的規則:
${OBJECTS}: $(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp
g++ $(FLAGS) $(INCLUDES) -c -o $@ $<
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.