make
能够构建你需要的东西,但前提是你要告诉它正确的依赖关系。 特别是,你当前的 Makefile 在依赖关系方面是撒谎的,因为main.o
根本不依赖functionsLab1.c
。 相反,你试图构建的最终可执行文件依赖于functionsLab1.o
。 你也许可以让你的整个Makefile。
main: main.o functionsLab1.o
(是的,就是一行。)。这忽略了对头文件的依赖性,但它应该对你有用。 让make
使用它的默认规则;它们非常好。 如果你想包括对头文件的依赖,可以这样做。
main: main.o functionsLab1.o
main.o: main.c functionsLab1.h
functionsLab1.o: functionsLab1.c functionsLab1.h
如果出于某种原因,你真的想明确(你不会!),你可以这样做。
main: main.o functionsLab1.o
$(CC) -o $@ $? # Warning: incomplete. See note below