Ubuntu系统下C语言的编译及make命令的应用
本文的目的是介绍如何在Ubuntu中编译多个C程序来熟悉在Linux系统上编写C程序的操作。相关程序名称分别为main1.c、sub1.c、sub1.h;以下采用两种方式进行编译,第一种是使用gcc在命令进行编译,第二种是使用Makefile文件编译。一、ubuntu系统中编写简单的Hello World程序1.创建一个main.文件2.编写输出“Hello World”程序3.编译4.运行5.运
本文的目的是介绍如何在Ubuntu中编译多个C程序来熟悉在Linux系统上编写C程序的操作。相关程序名称分别为main1.c、sub1.c、sub1.h;以下采用两种方式进行编译,第一种是使用gcc在命令进行编译,第二种是使用Makefile文件编译。
目录
一、ubuntu系统中编写简单的Hello World程序
- 工具:VMware Workstation、ubuntu-20.10-desktop
1.创建一个main.文件
‘ctrl+alt+t'打开终端后输入命令
nano main.c
2.编写输出“Hello World”程序
#include<stdio.h>
int main()
{
printf("Hello World\n");
return 0;
}
3.编译
gcc -o main main.c
4.运行
./main
5.运行结果
二、ubuntu系统中使用gcc编译C程序
1.编写子程序文件sub1.c
创建一个子程序文件sub1.c
touch sub1.c
进入文件
gedit sub1.c
编写子程序
float x2x(int a,int b)
{
float r=(float)a*b;
return r;
}
2.编写主程序文件main1.c
创建一个主程序文件main1.c
touch main1.c
进入文件
gedit main1.c
编写子程序
#include<stdio.h>
#include"sub1.c"
int main()
{
int x=4,y=5;
float z=x2x(x,y);
printf("%f\n",z);
return 0;
}
3.编译
gcc -o main1 mian1.c
4.运行
./mian1
5.运行结果
三、Windows系统下运行主程序main1.c
工具:Microsoft Visual Studio 2019
由于有两个.c文件出现编译错误,可将两个.c程序合二为一或者将sub1.c文件改为sub1.h文件
1.创建一个主程序main.c文件,输入程序并编译运行
-
main函数
#include<stdio.h> float x2x(int a,int b) { float r=(float)a*b; return r; } int main() { int x=4,y=5; float z=x2x(x,y); printf("%f\n",z); return 0; }
-
运行结果
2.修改sub1.c为sub1.h文件,编译并运行
- main1.c
#include<stdio.h>
#include"sub1.h"
int main()
{
int x=4,y=5;
float z=x2x(x,y);
printf("%f\n",z);
return 0;
}
- sub1.h
#include<stdio.h>
float x2x(int a, int b)
{
float r = (float)a * b;
return r;
}
- 运行结果
四、ubuntu系统下用Makefile方式编程主程序
makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。
makefile文件编写规则:
target:prerequisites
command # command以一个tab键开始# target为一个目标文件,可以是Object File,也可以是执行文件。还可以是一个标签(Label)
# prerequisites是需要生成target所依赖的文件或是目标
# command也就是make需要执行的命令。(任意的Shell命令)
1.使用前面的方法创建一个makefile文件
touch makefile
2.打开文件写入以下代码
gedit makefile
main:main1.o sub1.c
gcc -o main1 main1.o
main1.o:main1.c
gcc -c main1.c
sub1.o:sub1.c
gcc -c sub1.c
3.保存后返回终端执行make命令并运行
make
./main1
4.运行结果
五、小结
通过本次实验,熟悉了如何在Ubuntu中编译C程序的操作,并体会到了一次编译多个C程序的“快乐”,通过make命令快速编译,提高了程序开发的效率,另外与Windows系统下的编译器相比,Linux系统更能确切的感受到一个程序编译后再执行的步骤。
参考链接:https://blog.csdn.net/qq_45237293/article/details/108741893
更多推荐
所有评论(0)