linux - Makefile 生成具有相同名称但按两种不同规则生成的文件

标签 linux makefile

我想让 makefile 女巫生成一个包含两个不同规则的文件。一个用于表扬 make aaa,另一个用于 make bbb。 我有两个文件: 1.c 和 2.c 规则 aaa 需要从 1.c 生成的 result.o bbb 需要从 2.c 生成的 result.o

怎么做?

最佳答案

来自 GNU Make 文档:

A "rule" appears in the makefile and says when and how to remake certain files, called the rule's "targets" (most often only one per rule). It lists the other files that are the "prerequisites" of the target, and "commands" to use to create or update the target.

也就是说,make rules 的目的是生成一些 target,通常 一些操作的结果文件 - 无论是表示步骤已执行的标记文件或来自编译的目标文件。

你想要的是,为 2 个不同的依赖项生成一个 result.o 目标并不是 make 想要做的。

您可以做的是生成目标 1.o2.o,然后将它们链接到 result.o更高级别的规则。然而,这意味着 aaabbb 必须依赖 1.o2。 o 因为它们必须有单独的 目标(巧合的是规则的名称)。

关于linux - Makefile 生成具有相同名称但按两种不同规则生成的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4700098/

相关文章:

.net - 如何在 Ubuntu 16.04 LTS 上安装 dotnet SDK

c - 我如何在 Linux 中等待子进程完成

windows - 在 makefile 中运行命令并将 STDERR/STDOUT 打印到终端和文本文件

c++ - CMake的package_find冲突如何解决?

c - 使用 rpcgen 的简单计算器

linux - 在没有 X 服务器的 Centos 5.7 上运行 CutyCapt 时出错

c - 如果 hostent 中的指针没有被释放,gethostbyname_r 会泄漏内存吗?

linux - 如何使用安装前缀

c - 两个 C 程序的 makefile

c - "skipping incompatible"conftest错误