Ubuntu系统下C语言的编写及Makefile的应用

本文旨在通过在Ubuntu系统下对简单c语言程序的编写及运行,熟练gcc和makefile的使用

1. c语言环境的安装

首先配置C语言环境,输入以下指令安装gcc。

sudo apt install gcc

然后输入以下语句检查gcc版本

gcc --version

2. Ubuntu系统下编写 hello word 程序

Ubuntu上常用的文本编辑器有vi\vim、gedit、nano,我采用nano来编写该程序,在终端输入以下语句后,会进入文本编辑模式,然后编写程序即可。

nano HelloWorld.c

编写以下程序

#include<stdio.h>
int main()
{
printf("Hello World");
}

编写程序后,ctrl+o保存文件,会出现以下界面,若不需要更改文件名,回车即可,然后ctrl+x退出到终端。

在这里插入图片描述

输入以下语句编译HelloWorld.c

gcc HelloWorld.c

编译后输入./a.out 运行程序,a.out是编译后默认的可执行文件名,也可通过以下语句修改文件名

gcc HelloWorld.c -o [文件名]

下面是我运行程序后的截图

在这里插入图片描述

3. Ubuntu下C语言的应用

3.1 Ubuntu下编译主程序main1.c和子程序sub1.c

编写一个主程序文件 main1.c 和一个子程序文件 sub1.c, 要求:子程序sub1.c 包含一个算术运算函数 float x2x(int a,int b),此函数功能为对两个输入整型参数做某个运算,将结果做浮点数返回;主程序main1.c,定义并赋值两整型变量,然后调用函数 x2x,将x2x的返回结果printf出来。

sub1.c代码如下:

float x2x(int a,int b)
{
return (float)(a*b);
}

main1.c代码如下:

#include<stdio.h>
#include"sub1.c"
void main()
{
int x=5,y=4;
float s;
s=x2x(x,y);
printf("%f\n",s);
}

如上文所说,sub1.c及main1.c写好后,将main1.c生成可执行文件名,可得到如下图所示结果

在这里插入图片描述

3.2 Windows系统下使用Dev-c++编译主程序

使用Dev-c++编写的代码如下

#include<stdio.h>
float x2x(int x,int y)
{
	return (float)(x*y);
}
int main()
{
	int x=5,y=4;
	float s;
	s=x2x(x,y);
	printf("%f\n",s);
}

编译并运行后结果如下:

在这里插入图片描述

通过比较,可以发现Ubuntu系统下使用gcc和Windows系统下使用Dev-c++的运行结果是一样的,因为Dev-c++在后台调用的也是gcc。

4. 在Ubuntu系统下Makefile编程主程序

在命令行中输入touch makefile创建makefile文件,然后使用nano、vi等文本编辑器打开makefile文件编写程序。

 touch makefile
 nano makefile

编写代码如下:

s3:main1.o sub1.o
        gcc -o s3 main1.o sub1.o
main1.o:main1.c
        gcc -c main1.c
sub1.o:sub1.c
        gcc -c sub1.c
clean:
        rm *.o

需要注意的是gcc前一定要使用tab,而不能用空格。

编写文件并保存后,在终端输入make,系统会生成可执行文件s3。

在这里插入图片描述

使用./运行之

在这里插入图片描述

5. 总结

通过在Ubuntu环境下对简单c语言程序的编译及运行,可熟悉Ubuntu系统下gcc和makefile的基本使用,为以后的深入学习打下基础。

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值