【发布时间】:2015-12-30 19:40:20
【问题描述】:
我正在开发一个包含多个静态库的项目。我构建它们的方式总是相同的。我想知道如何为所有库重用这些规则,并避免为每个库进行复制和粘贴。这是一个构建 '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 $@ $^
$(FOO_OBJ_FILES): %.o: %.cc
$(CXX) $(COMMON_CFLAGS) $(FOO_CFLAGS) $< -o $@
此外,如果您对前面的代码摘录有任何意见,我很高兴知道。我对编写 Makefile 很陌生。
提前致谢
【问题讨论】:
-
你试过
include makefile.common -
嗨,deebee,你能给我一个使用通用makefile的例子吗?