我正在開發一個包含多個靜態庫的項目。我建立它們的方式總是一樣的。我想知道如何對所有庫重用這些規則,並避免爲每個庫複製&粘貼。這裏是一個構建'foo'庫的例子。重用相同的規則來構建不同的目標
# inputs
#
FOO_LIB_NAME := libfoo.a
FOO_SRC_DIR := $(SRC_DIR)/foo
FOO_SRC_FILES := \
foo_file1.cc \
subdir/foo_file2.cc \
subdir/foo_file3.cc \
...
FOO_CFLAGS :=
# rules
#
FOO_SRC_FILES := $(addprefix $(FOO_SRC_DIR)/,$(FOO_SRC_FILES))
FOO_OBJ_FILES := $(subst .cc,.o,$(FOO_SRC_FILES))
$(FOO_LIB_NAME): $(FOO_OBJ_FILES)
$(AR) rc [email protected] $^
$(FOO_OBJ_FILES): %.o: %.cc
$(CXX) $(COMMON_CFLAGS) $(FOO_CFLAGS) $< -o [email protected]
此外,如果您對代碼的以前摘錄有任何意見,我會很高興知道它。我在編寫Makefiles方面很新穎。
在此先感謝
你嘗試'包括makefile.common' – deebee
嗨deebee,你可以給我使用一個共同的生成文件的例子嗎? – user1192525
可能的重複[避免重複GNU Make規則](http://stackoverflow.com/questions/7149989/avoid-duplicating-gnu-make-rules) –