实验二:gcc、gdb、Makefile 的使用实验目的:〔一〕学会使用 gcc 编译器〔二〕学会 gdb 调试器的使用〔三〕学会编写 Makefile实验要求:〔一〕编写一应用程序,使用 gcc 进展编译,并分别使用-o,-g,-static,-O2 等选项〔二〕编写一应用程序,使用 gdb 调试,调试中使用到该小节所介绍的所有命令〔三〕实现一应用程序,该程序有两个 c 文件构成,使用 makefile 来完成对该程序的编译实验器材:软件:安装了 Linux 的 vmware 虚拟机硬件:PC 机一台实验步骤:〔一〕gcc 编译器1、先用 vi 编辑 hello.c 文件,容如下:2、gcc 指令的一般格式为:gcc [选项] 要编译的文件 [选项] [目标文件]例:使用 gcc 编译命令,编译 hello.c 生成可执行文件 hello,并运行 hello上面的命令一步由.c 文件生成了可执行文件,将 gcc 的四个编译流程:预处理、编译、汇编、连接一步完成,下面将介绍四个流程分别做了什么工作3、-E 选项的作用:只进展预处理,不做其他处理。例:只对 hello.c 文件进展预处理,生成文件 hello.i,并查看通过查看可以看到头文件包含局部代码#include 经过预处理阶段之后,编译器已将 stdio.h 的容贴了进来。4、-S 选项的使用-S 选项的作用:只是编译不汇编,生成汇编代码例:将 hello.i 文件只进展编译而不进展汇编,生成汇编代码 hello.s5、-c 选项的使用-c 选项的作用:只是编译不连接,生成目标文件.o例:将汇编代码 hello.s 只编译不成 hello.o 文件6、将编译好的 hello.o 库,生成可执行文件 hello7、-static 选项的使用-static 选项的作用:静态库例:比拟 hello.c 连接动态库生成的可执行文件 hello 和静态库生成的可执行文件 hello1的大小可以看到静态库的可执行文件 hello1 比动态库的可执行文件 hello 要大的多,他们的执行效果是一样的8、-g 选项的使用-g 选项的作用:在可执行程序中包含标准调试信息例:将 hello.c 编译成包含标准调试信息的可执行文件 hello2带有标准调试信息的可执行文件可以使用 gdb 调试器进展调试,以便找出逻辑错误9、-O2 选项的使用-O2 选项的作用:完成程序的优化工作例:将 hello.c 用 O2 优化选项编译成可执行文件 hello3,和正常编译产生的可执行文件hello 进展比拟〔二〕gdb 调试器1、先用 vi 编辑文件 test.c 用于 gdb 调试器调试,容如下2、将 test.c 文件编译成包含标...