簡體   English   中英

如何使用Makefile(g ++)僅將某些文件鏈接到對象?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM