永发信息网

如何写Makefile

答案:2  悬赏:80  手机版
解决时间 2021-02-14 07:04
  • 提问者网友:焚苦与心
  • 2021-02-13 18:04
如何写Makefile
最佳答案
  • 五星知识达人网友:青灯有味
  • 2021-02-13 18:24
makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至可以在makefile中执行shell脚本.makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率.  关于程序的编译和链接  一般来说,无论是C还是C++,首先要把源文件编译成中间代码文件,在Windows下也就是 .obj 文件,UNIX下是 .o 文件,即 Object File,这个动作叫做编译(compile),一般来说,每个源文件都应该对应于一个中间目标文件(O文件或是OBJ文件).然后再把大量的Object File合成执行文件,这个动作叫作链接(link).  编译时,编译器需要的是语法的正确,函数与变量的声明的正确.对于后者,通常是你需要告诉编译器头文件的所在位置(头文件中应该只是声明,而定义应该放在C/C++文件中),只要所有的语法正确,编译器就可以编译出中间目标文件.  链接时,主要是链接函数和全局变量,所以,我们可以使用这些中间目标文件(O文件或是OBJ文件)来 链接我们的应用程序.链接器并不管函数所在的源文件,只管函数的中间目标文件(Object File),在大多数时候,由于源文件太多,编译生成的中间目标文件太多,而在链接时需要明显地指出中间目标文件名,这对于编译很不方便,所以,我们要给 中间目标文件打个包,在Windows下这种包叫“库文件”(Library File),也就是 .lib 文件,在UNIX下,是Archive File,也就是 .a 文件.  下面我们开始看看如何自己写出makefile.  Makefile的规则  目标 : 需要的条件 (注意冒号两边有空格)    命令  (注意前面用tab键开头)  解释一下:  1 目标可以是一个或多个,可以是Object File,也可以是执行文件,甚至可以是一个标签.  2 需要的条件就是生成目标所需要的文件或目标  3 命令就是生成目标所需要执行的脚本  总结一下,就是说一条makefile规则规定了编译的依赖关系,也就是目标文件依赖于条件,生成规则用命令来描述.在编译时,如果需要的条件的文件比目标更新的话,就会执行生成命令来更新目标.
全部回答
  • 1楼网友:深街酒徒
  • 2021-02-13 18:47
你的回答很对
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯