(一) 实验目的
熟悉Linux操作系统的命令接口、图形接口和程序接口。提高动手能力。
(二) 实验内容和要求
本实验涉及到Linux操作系统下的C编程,及相关系统命令。
要求:
a) 设计一个简单的程序
b) 对该程序进行编译、运行
c) 独立完成
(三) 主要仪器设备
仪器: PC机
实验环境: Linux操作系统环境
(四) 实验原理
Linux操作系统的命令接口、图形接口和程序接口
(五) 源程序
(六) 实验步骤与调试
步骤:
- 1. 编写C代码
- 2. 用gcc命令对C文件进行编译:gcc -c osexp1.c,生成的是osexp1.o文件,即obj文件。
- 3. gcc osexp1.o osexp1.out,生成可执行文件(.out文件)
- 4. ./osexp1.out 运行可执行文件
图示:
(七) 实验结果与分析
对gcc命令的总结:
gcc -c osexp1.c -o osexp1.o
编译osexp1.c文件,但不链接,生成文件名为osexp1.o的目标文件(相当于VS 的obj文件),
-o是用来指定输出文件,输出的文件名将由其后面的命名决定,不添加-o osexp1.o时默认输osexp1.o
-o的用法: [infile] -o [outfile] 可以直接用来改文件名
gcc -E osexp1.c -o osexp1.i
将源文件作为输入文件,将预处理文件作为输出文件,也即只进行预处理操作。对源文件 osexp1.c 进行预处理操作,并将结果放在 osexp1.i 预处理文件中。如果不使用 -o 选项,那么将生成名为 osexp1.i 的预处理文件。
假如我们要编译多个文件,假设现有另一个文件fun.c
gcc -c fun.c
gcc -c osexp1.c
gcc fun.o osexp1.o -o app.out
将生成的两个目标文件生成最终的可执行文件 app.out。如果不使用 -o 选项,那么将生成名字为 a.out(默认)的可执行文件。
gcc -S osexp1.c
如果没有指定输出文件名,那么采用-S选项的 GCC 编译过程会为每个被编译的输入文件生成以.s作为后缀的汇编语言文件。编译器预处理 osexp1.c,将其翻译成汇编语言,并将结果存储在 osexp1.s 文件中。
Linux的vi编辑器的一些指令:
- 打开或创建文件:vi [filename]或者edit [filename],如果文件不存在则会创建一个新的文件。
- 文件的保存和退出:在命令行模式下,按esc键从插入模式切换到cmd模式,然后输入冒号:,接着输入
(1) w 保存
(2) w [filename] 另存为[filename]
(3) wq 保存退出
(4) wq [filename] 将文件保存为[filename]后退出
(5) q 不保存就退出
(6) x 同wq