(我正在运行 Linux Ubuntu 9.10,因此可执行文件的扩展名是 executablefile.out)我刚刚开始使用 C 语言进行模块化编程(使用多个文件进行编程),我想知道如何在单个 makefile 中编译多个文件。例如,编译这些文件的 makefile 是什么:main.c、dbAdapter.c、dbAdapter.h?(顺便说一句,如果你还没有弄清楚,主要功能在 main.c 中)还有人可以发布指向 makefile 文档的链接吗?
问问题
99330 次
2 回答
40
发布的链接都很好。对于你的特殊情况,你可以试试这个。基本上所有 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 中)。
它将使用这些源代码通过 gcc 编译来构建 main.o。-c 表示我们只想编译。
它对 dbAdapter.o 做同样的事情。当它拥有这两个目标文件时,就可以链接它们了。它也为这一步使用 gcc 编译器。-o 表示我们正在创建一个名为 program 的文件。
于 2010-04-09T01:54:18.333 回答
0
GNU make应该是您正在寻找的。
于 2010-04-09T00:43:54.280 回答