2021-09-14ubuntu系统用gcc和makefile方式编辑

本文档描述了如何在Ubuntu系统中使用gcc命令行编译包含多个源文件的C++程序,并介绍了如何编写Makefile进行自动化构建。在Windows环境下,使用CodeBlocks编译时遇到多文件编译问题,解决方法是编写正确的Makefile规则。通过这次实践,作者深化了对Ubuntu系统和C++编译过程的理解。

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

请编写一个主程序文件 main1.c 和一个子程序文件 sub1.c, 要求:子程序sub1.c 包含一个算术运算函数 float x2x(int a,int b),此函数功能为对两个输入整型参数做某个运算,将结果做浮点数返回;主程序main1.c,定义并赋值两整型变量,然后调用函数 x2x,将x2x的返回结果printf出来。**
  1. 请在ubuntu系统用gcc 命令行方式编译主程序main1.c 并运行;**
    编写文件主函数main1.c sub1.c 声明函数sub1.h
    请添加图片描述
    请添加图片描述

请添加图片描述
运行操作与结果:
请添加图片描述

请在windows系统下用你熟悉的编译工具编译主程序main1.c 并运行。**

声明并构建函数:请添加图片描述
主函数:
请添加图片描述
运行结果:请添加图片描述
与windows平台编程对比
工具: CodeBlocks
程序:与Ubuntu系统上一致
遇到的问题:
无法多文件编译.
因为我的文件夹下有一个main1.c文件,sub1.h和sub1.c文件。此时如果在main1.c文件下直接点击运行按钮会报错,因为sub1.c并没有编译,因此会出现main1.c引用的sub1.c中的函数没有定义的问题。
解决方法:
直接将sub1.h改为sub1.c,但是这种做法相当于把两个程序合并为一个,不提倡这样做,因为多次include可能会出问题。

在上述任务基础上,在ubuntu系统下用Makefile方式编程主程序。**

编写规则:
target:prerequisites
command # command以一个tab键开始
target为一个目标文件,可以是Object File,也可以是执行文件。还可以是一个标签(Label)
#prerequisites是需要生成target所依赖的文件或是目标
command也就是make需要执行的命令。(任意的Shell命令)
使用Makefile编译c程序
在源文件目录下执行命令make,即可编译得到可执行文件main1
请添加图片描述
删除编译产生的中间文件
在源文件目录下执行命令make clean

请添加图片描述

总结:

通过本次课程的学习与实践,我经历了一个从无到有的过程,软件包的没有安装导致我浪费了大量的时间去研究,但是它也让我对Ubuntu有了更深的认识
,通过gcc这种编译方式,我深刻的理解到了如何从C语言源程序编译为可执行文件的过程,相比较windows的编译而言,它更清晰的展示了c语言编译为可执行文件的一步步的进程,让我收获满满。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值