目录
1、编译要求
写一个主程序文件 main1.c 和一个子程序文件 sub1.c, 要求:子程序sub1.c 包含一个算术运算函数 float x2x(int a,int b),此函数功能为对两个输入整型参数做某个运算,将结果做浮点数返回;主程序main1.c,定义并赋值两整型变量,然后调用函数 x2x,将x2x的返回结果printf出来
2、在Ubuntu系统下使用gcc命令方式编译该程序
2.1创建文件并编译
CTRL+ALT+T 打开Ubuntu控制终端
使用touch命令创建程序文件main1.c并使用gedit对该文件进行编辑:
在main1.c中写下如下程序:
同理创建sub1.c和sub1.h两个文件并对该文件进行编辑并写入如下程序:
2.2使用gcc指令执行指令
输入如下指令并运行:
命令一:gcc -c sub1.c
作用:将sub1.c程序转换为目标文件sub1.o
命令二:gcc main1.c sub1.o -o main1
作用:编译main1.c文件为目标文件main1.o,然后链接sub1.o目标文件生成main1可执行文件
命令三:./main
执行./main1命令,即可执行编译生成的main1程序
2.3运行结果
运行结果如下:
3、在windows环境下使用qt编译该程序
3.1创建文件并编译
创建文件main.c写入如下程序:
创建文件sub1.c写入如下程序:
创建文建sub1.h写入如下程序:
3.3运行结果
运行结果如下:
结论:在Ubuntu系统下使用gcc命令方式编译该程序和在在windows环境下使用qt编译该程序的结果一致。
4、在Ubuntu系统下使用makefile方式编译该程序
4.1安装makefile
输入以下指令进行安装:
sudo apt-geall maket inst
4.2编译
在vim编辑器中创建新的makefile文件:
vim makefile
在vim编辑器中输入以下代码:
main1: main1.o sub1.o
gcc -o main1 main1.o sub1.o
main1.o: main1.c
gcc -c main1.c
sub1.o: sub1.c
gcc -c sub1.c
clean:
rm *.o
4.3运行
所得结果和上述一致。
5、总结
在本次作业中,我使用了gcc直接编译和Makefile编译这两种编译方式完成作业。在使用gcc的过程在,我了解到C语言是如何从源程序编译为可执行文件的过程。这与我们在windows上直接使用编译工具有所不同。虽然这种编译方式更加复杂,但却能我们更加了解整个C语言的源程序是如何一步步变为可执行文件的。