本文的目的是介绍如何在Ubuntu中编译多个C程序来熟悉在Linux系统上编写C程序的操作。相关程序名称分别为main1.c、sub1.c、sub1.h;以下采用两种方式进行编译,第一种是使用gcc在命令进行编译,第二种是使用Makefile文件编译。

目录

一、ubuntu系统中编写简单的Hello World程序

1.创建一个main.文件

2.编写输出“Hello World”程序

3.编译

4.运行

5.运行结果

二、ubuntu系统中使用gcc编译C程序

1.编写子程序文件sub1.c

2.编写主程序文件main1.c

3.编译

4.运行

5.运行结果

三、Windows系统下运行主程序main1.c

1.创建一个主程序main.c文件,输入程序并编译运行

2.修改sub1.c为sub1.h文件,编译并运行

四、ubuntu系统下用Makefile方式编程主程序

1.使用前面的方法创建一个makefile文件

2.打开文件写入以下代码

3.保存后返回终端执行make命令并运行

4.运行结果

五、小结


一、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

Logo

更多推荐