Linux下C程序的编写(操作系统实验)
非凡的大师 2024-10-10 09:07:03 阅读 81
实验题目: Linux下C程序的编写
实验目的: (1)掌握Linux下C程序的编写、编译与运行方法;
(2)掌握gcc编译器的编译过程,熟悉编译的各个阶段;
(3)熟悉Makefile文件的编写格式和make编译工具的使用方法。
实验环境(硬件和软件) VMware Workstation,Linux
实验内容:
练习使用gcc编译器编译C程序并执行,编写Makefile文件,使用make工具编译程序并执行。具体内容如下:
编写简单C程序,功能为在屏幕上输出“Hello gcc!”。利用该程序练习使用gcc编译器的E,S,c,o,g选项,观察不同阶段所生成的文件,即*.c,*.i,*.s,*.o文件和可执行文件。编写一个由头文件greeting.h、自定义函数greeting.c、主函数myapp.c构成的C程序,并根据这三个文件的依赖关系编写Makefile文件。
实验步骤:
(1)1.创建空文档,修改名称为myhello.c,出入程序代码,保存并退出。
2.打开终端,使用gcc命令对上述文档分阶段编译。
3.利用ls命令查看编译过程产生的各个文件。即myhello.c、myhello.s、myhello.o文件和可执行文件myhello.c。
(2)Makefile文件的编写。使用make工具编译程序,在终端提示符后输入“make”,并按Enter。
实验数据记录:
vim创建空文档myhello.c,输入程序代码,Esc后:wq保存并退出。vim myhello.c
<code>/*----------myhello.c----------*/
#include <stdio.h>
int main()
{
printf("Hello gcc!\n");
return 0;
}
1.2使用gcc命令对上述文档分阶段编译。
gcc -E myhello.c -o myhello.i # 预处理阶段
gcc -S myhello.i -o myhello.s # 编译阶段
gcc -c myhello.s -o myhello.o # 汇编阶段
gcc myhello.o -o myhello # 链接阶段
还可以直接编译gcc myhello.c -o myhello
3.利用ls命令查看编译过程产生的各个文件。即myhello.c、myhello.s、myhello.o文件和可执行文件myhello.c。
运行结果:
(2)Makefile文件的编写。使用make工具编译程序,在终端提示符后输入“make”,并按Enter。
2.1myapp.c文件: (vim myapp.c创建)
<code>#include <stdio.h>
#include "greeting.h"
#define N 10
int main()
{
char name[N];
printf("Your name,please:");
scanf("%s",name);
greeting(name);
return 0;
}
2.2 greeting.h
<code>#ifndef _GREETING_H
#define _GREETING_H
void greeting(char *name);
#endif
2.3greeting.c
<code>
#include <stdio.h>
#include "greeting.h"
void greeting(char *name)
{
printf("Hello %s",name);
}
2.4Makefile文件和make
vim Makefile创建并输入代码
<code>myapp:greeting.o myapp.o
gcc myapp.o greeting.o -o myapp
greeting.o:greeting.c greeting.h
gcc -c greeting.c
myapp.o:myapp.c greeting.h
gcc -c myapp.c
clean:
rm -rf *.o
make编译及最终结果:
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。