Ubuntu系统使用gcc和Makefile编译C程序

gcc命令行方式

Ubuntu系统下,先将main.c与sub1.h的程序保存文件夹中。

代码如下

main.c

定义并赋值两整型变量,然后调用函数 x2x,将x2x的返回结果printf出来

#include<stdio.h>
#include"sub1.h"
float x2x(int a,int b);/*对a,b求乘积*/
main()
{
   float x;
   int a,b;
   printf("a="); 
   scanf("%d",&a);
   printf("b=");
   scanf("%d",&b);
   x=x2x(a,b);
   printf("%f",x);
}

sub1.c

子程序sub1.c 包含一个算术运算函数 float x2x(int a,int b),此函数功能为对两个输入整型参数做某个运算,将结果做浮点数返回

#include<stdio.h>

float x2x(int a,int b)
{
float x;
x=a*b;
return x;
}
  • 命令:gcc -c sub1.c
  • 作用:将sub1.c文件进行编译转化为sub1.o(即可执行程序)

  • 命令:gcc main1.c sub1.o -o main1
  • 作用:编译main1.c文件为目标文件main1.o,然后链接sub1.o目标文件生成main1可执行文件

指令行输入ls查看当前文件夹中的文件,检查是否都生成可执行程序(如果不执行此条命令可能导致没有权限执行main1程序)

在Ubuntu上用Makefile编译C语言程序

makefile的价值:在之前运用gcc方式编译时我们需要在指令行中分别将sub1.c和main1.c程序转化为可执行程序,并且还要将其连接起来,还会涉及到一定的权限问题,较为麻烦。所以我们可以创建一个Makefile文件,将这些指令都装到Makefile文件中,执行Makefile文件时直接就完成了上述的一系列操作。

代码

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

在“1”文件夹中创建一个Makefile文件,并将上述的代码写入Makefile文件中(这时一定要注意,tab开头的指令是红色的,而用空格代替的指令行不是红色的

当我们输入“make”执行Makefile文件后再输入“ll”进行观察时,发现此时的sub1已经变为以.o结尾的可执行文件了,而此时也已建立好sub1和main1之间的链接,所以现在可以执行了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值