为预期的 .o 文件创建 C++ 联编文件?

Creating a C++ makefile for an expected .o file?

我有两个文件,main.cppsub.h

sub.h 只包含这一行

int sub(int n, int *A, int *B, int *C);

main.cpp 是一个非常基本的程序,我们在其中接收用户输入三个 int*A, B, C,然后调用 int sub(int n, int *A, int *B, int *C) 函数。但是,int sub(int n, int *A, int *B, int *C) 的实现在另一个我无权访问的文件中:sub.o.

我将如何编写这个 Makefile?在制作 Makefile 方面,我是新手,这让我很困惑我应该如何构建这段代码,尤其是 sub.o。我对我的依赖项是什么以及我应该如何开始编写它感到困惑。

只需包含 sub.o 作为另一个目标的依赖项。无需为它写食谱。 对于 main 目标,您可以执行以下操作:

main: main.o sub.o
  g++ -o $@ $^

这利用了知道如何将 main.cpp 编译成 main.o 的内置默认规则。

如果文件丢失,Make 会抱怨它不知道如何创建它:

make: *** No rule to make target `sub.o'.  Stop.