【发布时间】:2010-09-15 09:48:27
【问题描述】:
嗨,我想在 linux 中做一个 Makefile,它将把目录中的所有 .cpp 文件编译它们 并创建一个我可以激活的 .o 文件,我如何使用隐式规则进行操作
谢谢 马蒂
【问题讨论】:
-
您的意思是一个
.a或.so文件吗? -
n 个 .cpp 文件将有 n 个 .o 文件。我认为您在谈论.so。使用 ar rcs 生成库
嗨,我想在 linux 中做一个 Makefile,它将把目录中的所有 .cpp 文件编译它们 并创建一个我可以激活的 .o 文件,我如何使用隐式规则进行操作
谢谢 马蒂
【问题讨论】:
.a 或.so 文件吗?
隐式规则将帮助您创建目标文件,但必须明确地将它们组合在一起(因为很少这样做)。
OBJ = a.o b.o
big.o : ${OBJ}
${LD} -r -o $@ $^
【讨论】:
或者你可以在正确定义变量后尝试以下方法:
.o: .cpp
$(CPP) -c $(CPPFLAGS) $< -o $@
$(EXECUTABLE): $(OBJ)
$(CPP) $(LDFLAGS) $^ -o $@
【讨论】: