Ubuntu系统下C语言的编译及make命令的应用

本文详细介绍了如何在Ubuntu系统中编译C程序,包括编写简单的HelloWorld程序,使用gcc编译多文件程序,以及利用Makefile自动化编译。同时,也提到了在Windows环境下编译C程序的注意事项。通过这些步骤,读者能够熟悉Linux系统下的C程序开发流程和提高编译效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        本文的目的是介绍如何在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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值