小白学makefile之一
makefile的重要不言自明,不懂的话可以去网上搜下资料,这里不再讲述。以下小白开始学习makefile:
某认为买几本基础的编程书籍挺重要。想要学好linux尤其是linux下编程的话还是需要下点本钱的,(喂,老兄,这身打扮就说你是孙悟空喽,下足本钱嘛,头发都开叉了,有点专业精神!@#¥——大话西游·菩提游客)这样才有专业精神,书籍很重要,可以帮我们节约很多的时间。要注意时间就是金钱,节约时间就是节约金钱倒是次要,提高效率才是真的:)
这里不是说网上资料不全(虽然有时候确实不全),浪费时间的情况包括:1 搜索关键字不准确,定位百转千回;2 网络状况不稳定,比如有时候谷歌访问受限;3 内容资料专业但不系统。某比较喜欢博文,论坛偶尔也看,但从回答中筛选有用的信息也需要时间。一本好书能大概提示你所需要的东西。
某知道的三本书都有简单介绍makefile:《Linux程序设计》《GNU/LINUX环境编程(第二版)》《GNU/LINUX编程指南(第二版)》
书里大同小异都这样讲的
make 命令会自动查找当前目录下的Makefile(注意首字母M是大写的)文件。然后执行Makefile里的脚本。学问就在于Makefile脚本的手法,makefile的威力也在于此。
最简单的一个Makefile文件:
main:
gcc main.c
第一行的main是目标,或者可理解为任务名称。冒号后边跟随的第二行就是编译命令。
假如我们当前目录下只有 main.c 和 Makefile文件
main.c如下(经典的,简单的hello world)
#include <stdio.h> int main(int argc, char** argv) { printf("hello world!\n"); return 0; }
那么,makefile就可以工作了。
$ make
相当于执行了一遍gcc main.c
自动生成了可执行文件a.out(如果不指定生成文件的名字,生成的缺省文件名是a.out,至于为什么是a.out而不是其他名字,《C专家编程》有些介绍)。
这就是简单的makefile用例,以后某会进阶学习makefile相关知识。