Makefile编写实验.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Makefile编写实验

Makefile编写实验 【实验目的】 了解Makefile的基本概念和基本结构. 初步掌握编写简单Makefile的方法. 了解递归Make的编译过程 初步掌握利用GNU Make编译应用程序的方法 【实验步骤】 使用命令行的方式手动编译程序方法 利用文本编辑器创建hello.c文件 手动编译hello应用程序,在hello.c的目录的终端下输入: [root@local]$ gcc –c hello.c [root@local]$gcc hello.o –o hello 通过ls命令查看当前目录下是否生成源代码hello.c的object文件hello.o和可执行文件hello,运行可执行文件hello。查看一下运行结果。 [root@local]$./hello 修改hello.c文件,重新手动编译应用程序。 删除hello.o和hello文件 [root@local]$rm –f hello.o [root@local]$rm –f hello 利用 GNU make 自动编译应用程序方法 利用文本编辑器创建一个makefile文件,并将其保存到与hello.c相同的目录下。 先后执行如下命令: [root@local]$make [root@local]$ls [root@local]$./hello 查看并记录所生成的文件和运行的结果。 执行make clean命令: [root@local]$make clean 修改hello.c文件,重复第2、3步操作,查看并记录所生成的文件和运行结果。 重新编辑makefile文件(斜黑体表示修改部分) 重复第2,3步操作,查看并记录所生成的文件和运行的结果。比较这两种操作,写出你的结论。同时指出$^ 、$@、$在上述Makefile中的含义。 多个.c文件的编译 创建文件hello1.c、hello2.c、hello.h和makefile 先后执行如下命令 [root@local]$make [root@local]$ls [root@local]$./hello 查看并记录所生成的文件和运行的结果, 写出你的结论。 1 //hello.c //written by Emdoor #include stdio.h int main() { printf(Welcome Emdoor!\n); return 1; } # makefile test for hello program #written by Emdoor CC=gcc CFLAGS= hello: hello.o $(CC) $(CFLAGS) hello.o –o hello hello.o: hello.c $(CC) $(CFLAGS) –c hello.c –o hello.o clean: rm –rf hello *.o # makefile test for hello program #written by Emdoor CC=gcc CFLAGS= OBJS=hello.o all: hello hello: $(OBJS) $(CC) $(CFLAGS) $^ -o $@ hello.o: hello.c $(CC) $(CFLAGS) –c $ -o $@ clean: rm –rf hello *.o //hello1.c //written by Emdoor #include stdio.h int main() { printf(Welcome Emdoor!\n); test2(); return 1; } //hello2.c //written by Emdoor #include hello2.h #include stdio.h void test2(void) { printf(Welcome Emdoor! –hello2\n); } //hello2.h //written by Emdoor void test2(void); # makefile test for multi files program #written by Emdoor CC=gcc CFLAGS= OBJS=hello1.o hello2.o hello: $(OBJS) $(CC) $(CFLAGS) $^ -o $@ hello1.o: hello1.c $(CC) $(CFLAGS) –c $ -o $@ hello2.o: hello2.c $(CC) $(CFLAGS) –c $ -o $@ clean: rm –rf hello *.o

文档评论(0)

cgtk187 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档