Ubuntu系统和Windows系统采用不同方式编译main1.c程序

Ubuntu系统和Windows系统采用不同方式编译main1.c程序

问题描述

问题描述
1、 请编写一个主程序文件 main1.c 和一个子程序文件 sub1.c, 要求:子程序sub1.c 包含一个算术运算函数 float x2x(int a,int b),此函数功能为对两个输入整型参数做某个运算,将结果做浮点数返回;主程序main1.c,定义并赋值两整型变量,然后调用函数 x2x,将x2x的返回结果printf出来。
(1) 请在ubuntu系统用gcc 命令行方式编译主程序main1.c 并运行;
(2)请在windows系统下用你熟悉的编译工具编译主程序main1.c 并运行。
2、 在任务1基础上,在ubuntu系统下用Makefile方式编程主程序。

一、两种系统编译main.c

一、两种系统编译main.c
主程序

//main1.c
#include<stdio.h>
#include"sub1.h"
int main()
{
int a;
int b;
a=3;
b=2;
printf("sum is:%f",x2x(a,b));
return 0;
}




子程序

//sub1.c
#include"sub1.h"
#include<stdio.h>


float x2x(int a,int b)
{
float m=(float)a;
float n=(float)b;
float z=m*n;
return z;

}

头文件sub1.h

//sub1.h
#ifndef _SUB1_H_
#define _SUB1_H_
float x2x(int a,int b);
#endif

1、gcc编译main.c
gcc编译过程简介:
(1)预处理,创建预编译文件
(2)编译,生成可使用代码
(3)汇编,生成目标文件
(4)链接,生成可执行文件
运行效果图:
在这里插入图片描述

2、Windows系统下vc.6.0编译main.c
运行效果图
在这里插入图片描述

二、用Makefile方式编译main.c

二、用Makefile方式编译main.c
1、创建Makefile文件
在这里插入图片描述
2、熟悉Makefile规则
目标文件:【相依文件】
Tab命令【注释】
Tab命令【注释】

3、输入make命令进行调用并执行
在这里插入图片描述

三、对两种系统不同编译方式的总结

首先,第一部分的内容比较容易,只要学习gcc命令编译即可,第二部分Makefile部分的内容实验因为之前并没有很好的熟悉Makefile的各部分操作,因此在实验过程中出现了很多问题,以下将遇到的主要问题列出,供大家参考改善:
(1)因为Makefile编辑界面的空格引起的在执行界面无法执行make命令。此种问题的解决方式也很简单,只需将编辑界面命令语句前的空格全部用tab键代替即可。
(2)因为sub1.c文件的缺失导致的make执行时无法执行完所有命令。此种问题解决方式添上sub1.c即可。
(3)由于不在文件所在位置打开终端而导致的make命令无法执行问题。起初碰见这种问题时,我以为是gcc编译器的缺失导致,但是经过测试发现gcc正常,找了很长时间才明白终端位置不能随便打开。
最后总结一点:Ubuntu系统在程序编译时,采用gcc编译比较方便,在对多个文件进行维护工作时采用make和Makefile来完成较为容易。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

加菲猫不爱吃猫粮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值