欢迎路过的YUAN类朋友相互交流,以下是我的联系方式:
Email:greyzhang@126.com
微信:grey0612
我曾经尝试过多次学习makefile的编写,发现这个东西也不是很好写。学习make的使用难度似乎不亚于一门新的编程语言。过去我曾经多次采用偷懒的方式,随便找个makefile大致找一下规律然后自己写个脚本把所需的新的makefile生成出来,我也曾经求助于cmake等自动生成工具。这曾经让我实现过很多简单的makefile,也让我把gcc能够简单测试起来,不过距离我能够游刃有余使用其他的编译器还有很长的路要走。至于CodeWarrior,我则是采用了模仿然后使用脚本修改的方式,倒也能够满足我的要求。
有时候想想,学习基础的技术就如同武侠小说里的内功一般。如果稳扎稳打最后出来的效果肯定是比投机取巧要好一些,我也想稳扎稳打最终能够在此技术上有所小成。我把自己的能力进阶分为几个小段,最终的目的当然是能够写出多层级、多目录的复杂makefile,而且使用非gcc的编译器。
今天先完成第一个小目标——同一个目录下的代码文件编译。
我的工程目录树如下:
code1.c
code1.h
code2.c
code2.h
defs.h
main.c
makefile
在同一个目录下存在以上文件,而makefile文件则是我的makefile。描述的内容如下:
1,所有的c文件都依赖于defs.h
2,codeX.c依赖于codex.h
3,main.c依赖于所有头文件
4,最终生成的结果为target
编写makefile如下:
运行效果如下:
测试了文件依赖关系也都能够完成识别,这一个小目标算是完成。
这个例子似乎比较简单,稍微看几分钟make手册的人都能够写出来。下一次的晋级目标:完成c文件依赖的自动推导。