(一)实验目的
熟悉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