请编写一个主程序文件 main1.c 和一个子程序文件 sub1.c, 要求:子程序sub1.c 包含一个算术运算函数 float x2x(int a,int b),此函数功能为对两个输入整型参数做某个运算,将结果做浮点数返回;主程序main1.c,定义并赋值两整型变量,然后调用函数 x2x,将x2x的返回结果printf出来。**
- 请在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语言编译为可执行文件的一步步的进程,让我收获满满。