gpt4 book ai didi

makefile - 这样的 makefile 是如何工作的? (正常吗?)

转载 作者:行者123 更新时间:2023-12-02 08:01:04 26 4
gpt4 key购买 nike

我在makefile中遇到了这样的模式

CXXOBJ = f1.o f2.o f3.o

$(CXXOBJ): %.o: %.cpp
g++ -c $< -o $@

f1.o: f1.cpp f1.hpp f2.hpp
f2.o: f2.cpp f2.hpp f3.hpp macros.h
f3.o: f3.cpp f3.hpp



它可以工作(至少适用于 GNU make 4.0)。
它使用第四行的通用配方,
但另外还使用底部定义的依赖项。

问题

  1. 这是标准的 make 行为吗? (或者它是 GNU-make 特有的?)
  2. 这是编写 make 文件的标准方法吗? (即人们通常这样做还是有些“异国情调”?)
  3. 它到底是如何运作的?
    make 如何为同一个文件组合 2 个不同的规则? (只需附加依赖项列表或其他内容?)
    (我正在浏览GNU-make手册,但找不到相关部分)

最佳答案

这称为静态模式规则 ( https://www.gnu.org/software/make/manual/html_node/Static-Usage.html )。它是 GNU make 特有的。当不同的目标需要不同的配方来构建但匹配相同的模式时,它可能很有用。

关于第三个问题,同一个文件没有明确的规则。一切都定义得很好,每个目标都有相应的 .cpp 文件。

关于makefile - 这样的 makefile 是如何工作的? (正常吗?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24883298/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com