Makefile学习教程: 跟我一起写 Makefile
作者 佚名技术
来源 Linux系统
浏览
发布时间 2012-04-13
要告诉编译器头文件的所在位置(头文件中应该只是声明,而定义应该放在C/C 文件中),只要所有的语法正确,编译器就可以编译出中间目标文件.一般来说,每个源文件都应该对应于一个中间目标文件(O文件或是 OBJ文件).
链接时,主要是链接函数和全局变量,,我们可以使用这些中间目标文件(O文件或是OBJ文件)来链接我们的应用程序.链接器并不管函数所在的源文件,只管函数的中间目标文件(Object File),在大多数时候,源文件太多,编译生成的中间目标文件太多,而在链接时需要明显地指出中间目标文件名,这对于编译很不方便,,我们要给中间目标文件打个包,在Windows下这种包叫“库文件”(Library File),也就是 .lib 文件,在UNIX下,是Archive File,也就是 .a 文件.
总结一下,源文件会生成中间目标文件,再由中间目标文件生成执行文件.在编译时,编译器只检测程序语法,和函数、变量是否被声明.如果函数未被声明,编译器会给出一个警告,但可以生成Object File.而在链接程序时,链接器会在所有的Object File中找寻函数的实现,如果找不到,那到就会报链接错误码(Linker Error),在VC下,这种错误一般是:Link 2001错误,意思说是说,链接器未能找到函数的实现.你需要指定函数的Object File.
好,言归正传,GNU的make有许多的内容,闲言少叙,还是让我们开始吧.
1 Makefile 介绍
make命令执行时,需要一个 Makefile 文件,以告诉make命令需要怎么样的去编译和链接程序. ,我们用一个示例来说明Makefile的书写规则.以便给大家一个感兴认识.这个示例来源于GNU的make使用手册,在这个示例中,我们的工程有8个C文件,和3个头文件,我们要写一个Makefile来告诉make命令如何编译和链接这几个文件.我们的规则是: 1.
|
||
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于Makefile学习教程: 跟我一起写 Makefile的所有评论