Moh*_*nde 28 c makefile compilation modular
(我正在运行Linux Ubuntu 9.10,所以可执行文件的扩展名是executablefile.out)我刚刚进入C语言的模块化编程(用多个文件编程),我想知道如何在一个makefile中编译多个文件.例如,编译这些文件的makefile是什么:main.c,dbAdapter.c,dbAdapter.h?(顺便说一句,如果你还没有弄明白,主要功能是在main.c中)还有人可以发布一个指向makefile文档的链接吗?
adu*_*ric 39
发布的链接都很好.对于您的特殊情况,您可以试试这个.基本上所有的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
Run Code Online (Sandbox Code Playgroud)
这里的关键是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的文件.