首页 理论教育 Linux系统编程实践:使用Makefile文件

Linux系统编程实践:使用Makefile文件

时间:2023-11-18 理论教育 版权反馈
【摘要】:图2.67运行产生的可执行文件main用vi打开makefile进行改写,用变量进行替换,经变量替换后的makefile如下:退出并保存后,在shell中执行make和make clean命令的效果与前面第4步是一样的。

Linux系统编程实践:使用Makefile文件

●实验目的:

学会编写Makefile文件。

●实验要求:

实现一应用程序,该程序由两个c文件构成,使用Makefile来完成对该程序的编译。

●实验器材:

软件:安装了Linux的vmware虚拟机

硬件:PC机一台。

●实验步骤:

Makefile文件的编写步骤如下:

(1)先用vi编辑一个简单的c程序,由三个文件组成。

①文件fun.c内容。

②文件main.c内容。

③文件fun.h内容。

(2)使用gcc编译命令直接编译出可执行文件main,并运行查看结果,如图2.66所示。

图2.66 gcc编译命令直接编译出可执行文件并查看结果

(3)用vi编辑makefile,内容如下:

(4)退出并保存,在shell中键入make,查看并运行产生的可执行文件main,如图2.67所示。

图2.67 运行产生的可执行文件main

(5)用vi打开makefile进行改写,用变量进行替换,经变量替换后的makefile如下:

退出并保存后,在shell中执行make和make clean命令的效果与前面第4步是一样的。

(6)改写makefile,使用自动变量,改写后的情况如下:(www.xing528.com)

退出并保存后,在shell中执行make和make clean命令的效果与前面一样。

●上机报告要求:

1.总结选项-o,-E,-S,-c,-static,-g的作用。

-o选项的作用:指定目标文件名称。

-E选项的作用:只进行预处理,不做其他处理。

-S选项的作用:只是编译不汇编,生成汇编代码。

-c选项的作用:只是编译不连接,生成目标文件.o。

-static选项的作用:链接静态库。

-g选项的作用:在可执行程序中包含标准调试信息。

2.启动gdb的方式有几种?分别如何启动?

(1)gdb+调试程序名。

(2)gdb file调试程序名。

3.总结gdb中s(step)命令与n(next)命令的区别?finish命令与quit命令的区别?

s命令用于单步运行,另外n命令也用于单步运行,它们的区别在于:如果有函数调用的时候,s会进入该函数而n不会进入该函数。

finish命令用于运行程序,直到当前函数结束。

q命令用于退出gdb调试器。

4.编写makefile文件的三大构成要素是什么?分析第三个步骤的makefile,指出这三大要素分别对应的具体代码?

目标:依赖 命令

main: main.o fun.o

(Tab)gcc main.o fun.o-o main

main.o: main.c fun.h

(Tab)gcc-c main.c-o main.o

fun.o: fun.c fun.h

(Tab)gcc-c fun.c-o fun.o

Clean:

(Tab)rm-f main *.o

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈