【实验名称】
在Debian中使用gcc命令执行C语言程序
【实验目的】
- 熟练掌握Linux的常用命令
- 掌握Linux下文本编辑器vim的使用手法
- 熟练掌握Linux下使用gcc命令
【实验环境描述】
VirtualBox中安装32位Debian虚拟机
更换Debian虚拟机的apt源并且配置ssh
在Debian中安装软件包build-essential、vim、gdb
【实验过程】
一、新建一个Helloworld.c文件
1、使用Ctrl+Alt+打开终端,在终端中输入vim Helloworld.c创建一个文件名为hello.c的源文件。

2、输入i进入insert模式(即编辑插入模式),写入下列代码:
#include<stdio.h>
int main(void)
{
printf(“Hello world!\n”);
return 0;
}
然后按ESC回到normal模式,输入:wq保存并且退出

二、使用gcc命令对Helloworld.c文件进行处理得到可执行文件
1、预处理文件Helloworld.c
预处理:预编译器cpp把源代码文件和相关的头文件 (如stdio.h ) 预编译成一个 .i 的预处理后的C文件
操作方法:在终端中输入命令:gcc -E Helloworld.i -o Helloworld.c

结果:得到中间目标文件Helloworld.i

2、编译
编译:编译器gcc把预处理完的文件进行词法分析、语法分析、语义分析及优化后生成相应的汇编代码文件。
操作方法:在终端输入命令:gcc -S Helloworld.i -o Helloworld.s
结果:得到中间目标文件Helloworld.s

3、汇编
汇编:汇编器as把汇编代码转变成中间目标文件
操作方法:在终端输入命令:gcc -c Helloworld.s -o Helloworld.o
结果:得到中间目标文件 Helloworld.o

4、链接
链接:链接器ld把中间目标文件和相应的库一起链接成为可执行文件,linux是elf格式,windows上是pe格式
操作方法:gcc Helloworld.o -o Helloworld
结果:产生一个Helloworld的可执行文件

5、运行
操作方法:输入./Helloworld
结果:输出Hello world!

三、直接使用gcc -g -o
1、在终端执行命令:gcc -g Helloworld.c -o Helloworld

结果:产生一个Helloworld的可执行文件

运行Helloworld的可执行文件
2、执行命令:gdb Helloworld
结果:

3、使用gdb命令
输入命令:l
结果:从第一行开始列出源码

输入命令:r
结果:执行程序如下

执行命令:q
结果:退出gdb

【思考题】
通过实验过程中的二,每次使用gcc生成目标文件的时候,使用命令:
Vim +名称 即可打开相应的中间文件,通过查询gcc和vim的相关命令发现的该途径。
例如:
使用命令:vim Helloworld.i
结果:

Comments NOTHING