资源描述:
《Linux_Make(Makefile)由浅入深的学习与示例剖析》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、经过长时间学习和研究linuxGNUmakeI程管理器,现在把学习心得与大家分享一下,希望本文能教会您一些有用的东西。make工具,是所有想在Linux/Unix系统上编程的用户都需要且必须掌握的工具。如果您写的程序没有用到make工具,则说明您写的程序仅仅是个人练习小程序,称不上有实用价值的程序,因此我们必须学习、掌握并灵活运用它。在Linux/UNIX系统中,习惯使用Makefile或makfile文件作为make命令目标文件。Make工具最主要也是最基本的功能就是通过makefile文件来描述源程序之间的相互依赖关系并自动维护编译工
2、作。而makefile文件需要按照某种语法进行编写,文件中需要说明如何编译各个源文件并连接生成可执行文件,并要求定义源文件之间的依赖关系。一、多文件编译的总体结构如下图所示,本示例共包含float类型加法、加法头函数、int类型加法、main主函数、float类型减法、减法头函数、im类型减法[yanggang血localhostmakefile]SIs-1总计56rwrr-1rootroot7007-0621:03add_flost.crootroot12907-0620:51add•hrwrr"lirootroot6107-0620:
3、48add_int.crwrr1irootroot35107-0620:57niain^crwrr1irootroot7007-0621:00sub_flost.crwrr1irootroot11607-0621:08sub.hrwrr1irootroot6007-0620:43sub_int.crwrr1主函数viewplaincopytoclipboardprint?102030405060708090100110120130140150include”add.h”#include"sub.h"#includeint
4、main(){intx,y;floata,b;x=5;y=2;a=5.5;b=2.2;printf("%d+%d=%dM,x,y,add_int(x,y));printf("%3.1f+%3.1f=a,b,add_float(a,b));printf("%d-%d=%d",x,y,sub_int(x,y));printf(M%3.1f-%3.1f=%3.1fM,a,b,sub_float(a,b));return0;includeHadd.hn#include"sub.h"#includeintmain(){
5、intx,y;floata,b;x=5;y=2;a=5.5;b=2.2;printf("%d+%d=%d",x,y,add_int(x,y));printf(”%3.1f+%3.1f=%3.1f”,a,b,add_float(a,b));printf("%d-%d=%d",x,y,sub_int(x,y));printf(”%3.1f・%3.1f=%3.1fn,a,b,sub_float(a,b));return0;加法头函数viewplaincopytoclipboardprint?1020304050607080901
6、00110120130140150/*add.h*/#ifndef_ADD_H_#define_ADD_H_externintadd_int(intx,inty);externfloatadd_float(floatx,floaty);#endif/*add.h*/#ifndef_ADD_H_#define_ADD_H_externintadd_int(intx,inty);externfloatadd_float(noatx,floaty);#endifint类型加法viewplaincopytoclipboardprint?10203
7、0405060708090100110120130140150/*addint.c*/intadd_int(intx,inty)returnx+y;}/*add_int.c*/intadd_int(intx,inty){returnx+y;}float类型加法viewplaincopytoclipboardprint?10203()405060708()90100110120130140150/*add_float.c*/floatadd_float(floatx,floaty){returnx+y;I/*add_float.c*/flo
8、atadd_float(floatx,floaty){returnx+y;}减法头函数viewplaincopytoclipboardprint?10203040506070809010011