84年的矿泉水

博客园 首页 新随笔 联系 订阅 管理

       makefile是什么东西?对于使用.net,java开发的人员来说,这个东西好像从来没有听过,见过,更是没有用过。

       其实对于一个程序员至少是准备做一个prefessional的开发人员来说,最好还是要了解一下makefile这个东西的。但是伴随着IDE越来越智能,越来越傻瓜,现在IT行业入门的门槛越来越低(真是不明白为什么面试的时候作假的人也越来越多呢?!)。智能的IDE给我们的程序员做了很多复杂而繁琐的工作。比如VS,Eclipse,Netbeans等等,这些工具都给我们带来了不少的工作效率提升,但是慢慢的也改变了我们的程序员,越来越傻瓜化,越来越离不开IDE环境,甚至是换另外一种IDE就无法正常工作了。

     makefile就是一个在IDE智能化过程中被弱化甚至删除的技巧。现在除非是开发unix/linux平台下的软件,否则已经很难接触到makefile了。其实makefile就是一个文件,这个文件里面有生成这个项目的所有编译命令。你只要在编译的时候打“make”就完成了整个软件的编译工作。如果需要一些特定的功能,你可以使用“伪指令”来完成。比如你对于编译出来的可执行文件或者中间过程文件不放心,那么你可以定义一个叫“clean”的“伪指令”,然后通过make时候加入参数clean的方式来清除所有你想要删除的文件。这里你想到了什么?makefile可以运行shell是吧?对了,makefile中还可以加入shell脚本,是不是很方便?

    那么我们在开发的时候怎么使用makefile给我们带来的便利呢?我的做法是使用两个makefile,一个就叫“makefile”,另外一个叫“makefile_gdb”,大家看文件名就应该知道两个文件的分工了吧?对的,一个生成的东西是拿来做调试使用的,一个拿来部署。因为有的时候你需要对于你的软件进行调试,这个时候你还会使用到一种叫”gdb“的技术(ps:怎么又没听过?看来你真是被IDE侵害的不轻啊,下回也给你扫扫盲。)。而调试的时候和发布的时候大家都知道软件的版本是不一样的,一般在iIDE中为了区分这两个版本:调试版本称为”debug”,发布版本称为“release”。但是怎么生成两者的文件的呢?肯定是通过了两个不同的指令集了。同理,我们必须也要保证使用两套不同的命令来生成不同版本的文件。那么怎么用呢?其实很简单,大家可以参考一下GUN的makefile标准,make命令是可以带参数的,你只要使用-f指定需要执行的文件就可以生成你想要的文件版本了。

posted on 2010-02-27 18:38  xvhfeng  阅读(492)  评论(0编辑  收藏  举报