实验2 vi编辑器和GCC编译器
学院: 工业自动化学院 专业: 机器人工程一班 年级: 19 实验时间:
姓名: 李宇轩 学号: 190410105022 组别:_______ 指导教师:
一、实验目的练习使用vi编辑器三种模式:
了解编译的四个阶段,熟悉gcc编译器的使用。
掌握gcc编译器常用的选项参数。
二、实验环境与条件1.标配PC机
2.VMware Workstation 10
3.Ubuntu 16.04
三、实验过程及说明1.根据实验指导书hello.c的程序,编写程序输出自己的姓名学号。分别截图表示程序的内容和输出结果。
2.将test.c文件转换为汇编语言、机器语言,分别使用cat指令查看,并附上截图。
3.按照实验指导书要求编写C语言源程序sum.c,截图表示该程序的内容,对sum.c预编译后,截图表示预编译后的内容。
4.在sum.c的基础上修改程序(使程序的计算复杂),执行优化选项进行编译。对比不加优化选项,程序的执行耗时,截图表示。
修改后:
四、简答题1.简述vi编辑器三种模式如何进行切换。
按下vi进入默认输入模式,可以输入命令;在命令模式下输入 i可以进行文本输入模式,若想回到命令模式下,按下esc即可;在命令行模式下,输入:可进入末行模式,可以对文本进行保存和退出vi编辑器
2.将C语言源程序编译成可执行文件,依次经过哪些阶段?分别对文件做哪些处理?
预处理→编译→汇编→链接/加载
预处理:将存储在不同文件的源程序(.c文件)聚合在一起,将语言中的宏进行替换,比如预处理指令#include,让编译器打开包含的文件,将其程序与其他程序呆在一起.生成.i文件。
编译:预处理源程序(.i文件)变为汇编程序(.s文件)
汇编:将汇编程序转换为可重定位的机器代码,这一步产生目标文件(.obj或.o文件)。
链接/加载:链接就是把目标文件和其他分别进行编译生成的程序模块(如果有的话)及系统提供的标准库函数连接在一起,生成可运行的可执行文件的过程,加载时将各代码与数据定位到内存合适的位置,这一步产生最终的可执行文件