手机版
你好,游客 登录 注册 搜索
背景:
阅读新闻

笨兔兔的故事——带你了解Ubuntu,了解Linux

规划

[日期:2010-12-23] 来源:Ubuntu社区  作者: 懒蜗牛Gentoo [字体: ]
 (52) 规划
   说的这么热闹,其实包工队的工作过程对主人来说并不关心,他只跟gcc打交道,只管把源码交给他就好了,gcc会领导小弟们干活,最终回馈给主人一个可执行的二进制文件。中间过程中的那些个文件,主人压根也看不到。包工队的同志们,都紧密的团结在以gcc为核心的组织周围,坚持编译四步原则,坚持代码开放,为把Linux建成为软件丰富,运行稳定,老少皆宜,人人必备的操作系统而努力奋斗。
  
   不过,包工队毕竟只是个包工队,你要是盖个小厨房,垒个猪圈啥的,直接找他们盖就没问题了。你要是想建个CBD商圈,里边什么银行啊,商场啊,写字楼啊,炸油条的啊,卖臭豆腐的啊,修理自行车的……等等一应俱全。这么大的一个工程,你光叫个包工队来就搞不定了。得有人进行合理的统筹规划,设计施工方案,然后再让包工队去具体施工。这个规划的人就是——make
  
   make也是一个程序,像上边说的一样,他就是负责控制整个施工过程的(也就是编译过程啊)。对于比较小的程序,像主人的rubbish系列,也就一两个.c文件,那根本用不着make出马,直接gcc包工队去编译就行了,因为源文件的结构关系不是很复杂。可是要稍大一点的程序,像狐狸妹妹啊,皮筋老弟啊,星爷啊,基本上所有常用的软件吧,都足够复杂到需要make来对编译过程进行管理。当软件大了,编译的时候就不能是简单的把一大堆.c的源文件统统一次性编译成一个二进制文件那么简单的事情了。那么做的话很费时费力,比如说,有一个软件,源码由20个.c文件组成,分别是1.c,2,c,3.c…………20.c。这20个文件一股脑都交由gcc包工队,他们就会把这些文件都打开来,拼在一起,一次性的编译成一个叫做big的二进制文件。这时候发现了一些问题,需要修改3.c文件,修改之后得重新编译啊,那么gcc包工队又得把这20个文件全都打开,拼在一起,再从头到尾编译一次。而其实只有3.c文件修改了,完全不必这么兴师动众。那应该怎么做呢?一般的都是把这 20个文件分别编译成.o文件,比如编译成1.o,2.o,3.o……20.o,这样20个.o文件,然后再由ld把这些.o文件拼在一起,成为一个叫做big的二进制可执行文件。那么当要修改3.c的时候,只需要让gcc包工队重新将3.c编译为3.o,再让ld重新连接一遍就好了,省去了很多时间。而这个过程,如果让主人自己管理的话,会很麻烦,毕竟他们人类的大脑也不是那么靠谱的,搞着搞着就乱了。于是,make义无反顾的挑起了这个重要的担子。当然make也不能靠凭空的想象就来指导包工队干活,什么事情总得有个规划不是。make也需要一份施工的规划书,这分规划书就是Makefile。
  
   Makefile,顾名思义,就是make用的file。这就相当于一份施工的规划,上面写着整个工程分为几个模块,先用哪几个文件编译成一个什么什么.o,再用哪几个文件编译出一个.o,再怎么怎么一连接,最后得到编译好的二进制程序。make就根据这份文件来指导gcc他们进行施工。当有某个.c文件被后改之后,make能够根据文件的修改时间智能的判断出哪些模块需要重新编译,重新连接,然后就去让gcc重新编译那些改过的文件,最终生成新的二进制程序。有了make和Makefile,就省去了主人敲一大堆编译命令的烦恼,只要敲一个make,其他的,就交给make去做吧,他办事,你放心。linux
【内容导航】
第1页:开端 第2页:醒来
第3页:工作 第4页:历史
第5页:也是历史 第6页:还是历史
第7页:串门 第8页:碎片
第9页:邻居 第10页:人才
第11页:来头 第12页:本事
第13页:开源 第14页:故事
第15页:minix 第16页:(16) linux
第17页:Friends 第18页:杀毒
第19页:免疫 第20页:权利
第21页:内存 第22页:内存
第23页:信封 第24页:
第25页:酒 too 第26页: 酒Again
第27页:Year 第28页:人物志
第29页:日志 第30页:XFS
第31页:分区 第32页:挂载
第33页:GIMP 第34页:QQ
第35页:运算 第36页:
第37页:协作 第38页: 加速
第39页:OpenGL 第40页:Power On
第41页:init 第42页:EXT4
第43页:有朋远来 第44页:他乡故知
第45页:可视电话 第46页:磁盘
第47页:硬解 第48页:刻录
第49页: Rubbish 第50页:Bug
第51页:施工 第52页:规划
第53页:因地制宜 第54页:Richard
第55页:Stallman 第56页:进程
第57页:僵尸 第58页:State
第59页:毕加索 第60页: 对决
第61页:空间 第62页:VBox
第63页: 动物园 第64页:BT
第65页: tar包 第66页:编译安装
第67页:对话 第68页:聊天记录
第69页:LOSE 第70页:宏&微
第71页:无线网卡 第72页: 驱动
第73页:显卡驱动 第74页:SLax
第75页:备份 第76页:浮云
第77页:文件类型 第78页:fedora
第79页:RPM 第80页:(80) 爱丽恩
第81页:用户认证 第82页:不知道起啥名字了……
第83页: 第84页:权限
第85页:多用户 第86页:比武
第87页:间歇 第88页:(88) 舌战
第89页:了断 第90页:shell
第91页:乱七八糟 第92页:文泉驿
第93页:dropbox 第94页:
第95页:地址 第96页:绕路
第97页:邮局 第98页:端口
第99页:云山雾罩 第100页:记忆
第101页:浏览器的战争 第102页:狐狸出世
第103页:群雄并起 第104页:门派
第105页:任天堂 第106页:敲敲打打本正理,补补全全是便捷
第107页:往事如烟千般忆,一令似关万物分 第108页:片片云烟过眼 页页细审在目
第109页:众里寻他千百度 第110页:山高无路阻佳音,途中逢友传鸿雁
第111页:笔走龙蛇书妙体,顿开金锁走蛟龙 第112页:小熊猫下小熊猫,游戏者装游戏者
第113页:忠勇智计三千人,三千宠爱在一身 第114页:一寸光阴一寸金 寸金难买寸光阴
第115页: 集腋成裘,拼小为大 第116页:容量速度和安全,阵列级别零一五
第117页:喜得广厦千万间,挂载之后方欢颜 第118页:硬盘扩建无忧虑 文件共享有三八
第119页:通讯靠吼 第120页:认证张口
第121页:SMB初具规模 NFS虎视眈眈 第122页:某年某月某日 某时某分某秒
第123页: 长江后浪推前浪,一代新兔胜旧兔 第124页:伤情最是晚凉天,升级坎坷不堪言
第125页: 惨淡天空,又见光明 第126页:三个和尚没水喝,两个内核没图形
第127页:为体验换装KDE,要易用开发新界面 第128页:我不知道叫什么题目好了
第129页:人生自古谁无死 留洒芳香满内存
相关资讯       Ubuntu Linux 
本文评论   查看全部评论 (12)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
第 12 楼
* 匿名 发表于 2018/2/19 0:02:32
嗨,真想做个笨兔兔,陪在懒蜗牛身边,.😇
第 11 楼
* 匿名 发表于 2017/4/16 13:43:37
和俱
第 10 楼
* Aaron_Peng会员 发表于 2015/1/28 12:09:59
很不错,推荐给小白看看
回复 支持 (24) 反对 (26)
第 9 楼
* 匿名 发表于 2013/1/23 18:03:37
花了4天去看完,前面有些历史知识,还有些软件的原理,值得去看一下。后面十几章,我就粗略的带过了。显得有些臃肿,啰嗦,价值没有前面几章大。
回复 支持 (29) 反对 (32)
第 8 楼
* Jarod 发表于 2012/8/1 9:42:19
实在太精彩了!我留了份,哈哈
回复 支持 (38) 反对 (37)