使用make编译多个C文件

(我正在运行Linux Ubuntu 9.10,所以可执行文件的扩展名是executablefile.out)我刚刚进入C语言的模块化编程(用多个文件编程),我想知道如何在一个makefile中编译多个文件。 例如,编译这些文件的makefile是什么:main.c,dbAdapter.c,dbAdapter.h? (顺便说一句,如果你还没有弄明白,主要function是在main.c中)还有人可以发布一个指向makefile文档的链接吗?

请参阅我的Makefile教程:如何编写Makefile 。 它提供了一个精心设计的Makefile,它将构建这样一个项目(包含多个C和C ++源文件),解释它是如何工作的,并警告常见的陷阱以及糟糕的makefile实践,这些实践在野外遇到很常见。

发布的链接都很好。 对于您的特殊情况,您可以试试这个。 基本上所有的Makefile都遵循这种模式。 其他一切都是快捷方式和宏。

program: main.o dbAdapter.o gcc -o program main.o dbAdapter.o main.o: main.c dbAdapter.h gcc -c main.c dbAdapter.o dbAdapter.c dbAdapter.h gcc -c dbAdapter.c 

这里的关键是Makefile按顺序查看规则并构建为需要某些项目。

它首先会看程序并看到构建程序,它需要一些名为main.o和dbAdapter.o的东西。

然后它会找到main.o. 但是,要构建main.o,需要main.c和dbAdapter.h(我假设dbAdapter.h包含在main.c中)。

它将使用这些源来构建main.o,方法是使用gcc编译它。 -c表示我们只想编译。

它与dbAdapter.o做同样的事情。 当它有这两个目标文件时,它就可以链接它们了。 它也使用gcc编译器进行此步骤。 -o表示我们正在创建一个名为program的文件。

GNU make应该是您正在寻找的。