永发信息网

如何写Makefile

答案:2  悬赏:80  手机版
解决时间 2021-02-14 07:04
如何写Makefile
最佳答案
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规则规定了编译的依赖关系,也就是目标文件依赖于条件,生成规则用命令来描述.在编译时,如果需要的条件的文件比目标更新的话,就会执行生成命令来更新目标.
全部回答
你的回答很对
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
感觉到正在恋爱当中对方在敷衍你的时候 该怎
周村西铁城待遇怎么样
描写三句关于雨优美的句子
那个人,军师 第60章
铭鑫机电设备有限公司在哪里啊,我有事要去这
谁有勇者大战魔物娘的完整版游戏
牛蛙和猪肉能一起吃吗?吃了,有毒吗?
农历1995年1月13日是什么星座拜托了各位 谢谢
夏天胳膊晒黑了怎么办?
iphone6plus摔坏了,不能开机,里边的照片怎
梦到自己掉头发,成了秃顶。
花千束品牌鲜花馆地址在哪,我要去那里办事
【pc/abs合金的最佳相容剂是什么?】
2011版三国杀张昭张纮直谏可不可以替换原装备
在小县城开车是自动挡好还是手动挡好
推荐资讯
怎样即经济又省钱的给400平米的库房供暖
米娜桑空把哇什么意思
下列不属于年金的是()。A.每月缴纳的车贷贷款
你好,我的excel最近使用文档那里还是灰色的
真现在心好累 为什么我做的一切都不对 想一个
第一站小区地址有知道的么?有点事想过去
车损险有必要买吗?
西安电子科技大学宿舍情况好吗?食堂怎样?还
下列能够产生抗体的细胞是A. T淋巴细胞B. 浆
黄骅市南排河镇中学地址有知道的么?有点事想
天利化妆品地址有知道的么?有点事想过去
上海市宝山区海蓝幼儿园地址在什么地方,我要
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?