Ubuntu系统C语言编程和makefile的使用

5 篇文章 0 订阅
1 篇文章 0 订阅

一、编程准备

首先,编写C语言程序之前需要准备两个工具,一个是vim文本编辑器和gcc工具,需要在终端执行以下命令:

$ sudo apt-get install vim
$ sudo apt-get install gcc

二、“Hello world”程序编写

1、在终端输入vi hello.c创建一个.c文件,进入一个vim一般模式,现在还不能编辑。
2、按下“i,I,a,A”等键进入编辑模式,进行编辑。
3、输入代码行:

#include<stdio.h>
int main()
{
printf("Hello world!")
return 0;
}

4、按下Esc键退出编辑模式。
5、按下:wq保存退出。
6、输入代码行:

$ gcc hello.c -o hello

将hello.c文件放到hello文件中
7、输入./hello可得:
在这里插入图片描述

三、不同环境下C语言的编写

Ubuntu系统下的编写:

1、主程序main1.c的编写
已用vim编译器编写完成,主程序显示如下:
在这里插入图片描述
2、子程序sub1.h的编写
在这里插入图片描述
3、gcc编译及其运行结果

$ gcc main1.c -o main1 //编译并执行自己想要的文件名main1
$ ./main1 //运行main1的程序

在这里插入图片描述

$ gcc main1.c //gcc 编译main1.c ,默认输出a.out文件

在这里插入图片描述

$ gcc -c main1.c //只编译不链接,生成main1.o

在这里插入图片描述

win10系统下(DEV C++)的编写:

1、main1.c的编写
在这里插入图片描述
2、sub1.h的编写
在这里插入图片描述

3、结果展示
在这里插入图片描述

四、make工具和Makefile的介绍

make工具可自动完成编译工作,简化开发工作。

  • 修改几个源文件,就重新编译这几个源文件。
  • 若头文件被修改,就重新编译这几个头文件。

Makefile:make工具所使用的文件,其指明了编译规则。

五、使用Makefile编译C程序

1、Makefile的使用规则

目标···...:依赖文件集合·······
	命令1
	命令2
	······

2、Makefile文件的编写

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

在这里插入图片描述
注意:Makefile文件编写中空着的地方只能按Tab键,不能按空格键。

3、用Makefile编写主程序

//main1.c
#include<stdio.h>
#include"sub1.h"
int main()
{
	int a,b;
	float c;
	int a=5,b=8;
	c=x2x(a,b);
	printf("%.2f",c);
	return 0;
}
//sub1.c
#include<stdio.h>
#include"sub1.h"
float x2x(int a,int b)
{
	float c;
	c=a*b;
	return c;
}
//sub1.h
#include<stdio.h>
float x2x(int a,int b);

注意:编写完主程序之后,需要命令行输入gcc sub1.hsub1.h转化为可执行的输出文件sub1.o

4、输入make工具调用并执行
在这里插入图片描述
5、未修改在使用make工具
在这里插入图片描述
若文件未做任何修改,执行make工具后,终端显示“main1”已是最新。

六、总结

在Ubuntu18.04系统下可以使用vim文本编辑器和gcc工具进行 C语言的编译,在大型的编译环境下,有多个文件同时存在时,为了简化重复的工作,可以使用make工具和Makefile文件简化开发工作,提高工作效率。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值