【问题标题】:Implicit Rules in MakefileMakefile 中的隐式规则
【发布时间】:2010-09-15 09:48:27
【问题描述】:

嗨,我想在 linux 中做一个 Makefile,它将把目录中的所有 .cpp 文件编译它们 并创建一个我可以激活的 .o 文件,我如何使用隐式规则进行操作

谢谢 马蒂

【问题讨论】:

  • 您的意思是一个.a.so 文件吗?
  • n 个 .cpp 文件将有 n 个 .o 文件。我认为您在谈论.so。使用 ar rcs 生成库

标签: c++ linux makefile


【解决方案1】:

隐式规则将帮助您创建目标文件,但必须明确地将它们组合在一起(因为很少这样做)。

OBJ = a.o b.o

big.o : ${OBJ}
    ${LD} -r -o $@ $^

【讨论】:

    【解决方案2】:

    或者你可以在正确定义变量后尝试以下方法:

    .o: .cpp
        $(CPP) -c $(CPPFLAGS) $< -o $@
    $(EXECUTABLE): $(OBJ)
        $(CPP) $(LDFLAGS) $^ -o $@
    

    【讨论】:

    • $(CPP) 和 $(CPPFLAGS) 用于预处理器,而不是编译器。我认为您的意思是 $(CXX) 和 $(CXXFLAGS)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多