目录
问题描述
一、ubuntu系统gcc编程及Windows编程
(一)程序的编写
(二)gcc编译过程简介
(三)两种系统运行效果及对比
二、ubuntu系统Makefile编程
(一)Makefile编译规则
(二)编写Makefile并编译
三、总结
问题描述
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方式编程主程序。
一、ubuntu系统gcc编程及Windows编程
(一)程序的编写
主程序
子程序
头文件
(二)gcc编译过程简介
编译阶段 | 编译命令 | 作用 |
预处理 | gcc -E hello.c -o hello.i | 创建预编译文件 |
编译 | gcc -S hello.i -o hello.s | 生成可使用代码 |
汇编 | gcc -c hello.s -o hello.o | 生成目标文件 |
链接 | gcc hello.o -o hello | 生成可执行文件 |
(一)两种系统运行效果及对比
windows
ubuntu
二、ubuntu系统Makefile编程
Makefile编译规则
- target:prerequisites
- command # command以一个tab键开始
- # target为一个目标文件,可以是Object File,也可以是执行文件。还可以是一个标签(Label)
- # prerequisites是需要生成target所依赖的文件或是目标
- # command也就是make需要执行的命令。(任意的Shell命令)
编写Makefile并编译
prog:main1.o sub1.o
gcc main1.o sub1.o -o prog
main1.o:main1.c
gcc -c main1.c -o main1.o
sub1.o:sub1.c
gcc -c sub1.c -o sub1.o
clean:
rm *.o
三、总结
Ubuntu系统对gcc编译器编程和Makefile编程,gcc编译器的执行效率较高,但是适合较少源代码的编译;而Makefile适用于多个源程序,会更加的方便。在Windows下编程软件较为普遍,选择适合自己的编程软件即可。