文章目录
序、准备工作——编写C语言程序
- 编写main1.c
#include "stdio.h"
int main()
{
int a=3;
int b=7;
printf("a/b=%f",x2x(a,b));
return 0;
}
- 编写sub1.h
#ifndef __SUB1_H
#define __SUB1_H
#include "stdio.h"
float x2x(int a,int b);
#endif
- 编写sub.c
include "sub1.h"
float x2x(int a,int b)
{
float x;
x=(float)a/b;
return x;
}
一、用gcc编译C语言程序
步骤一
- 用gcc命令将sub1.c转换为sub1.o
命令:gcc -c sub1.c
步骤二
- 用gcc命令将main1.c编译为main1.o,并将其与sub1.o文件链接生成main1可执行文件
命令:gcc main1.c sub1.o -o main1
步骤三
- 执行main1文件
命令:./main1
二、用makefile方式编译C语言程序
步骤一
- 编写makefile文件
main1:sub1.o main1.c
gcc main1.c sub1.o -o main1
sub1.o:sub1.c
gcc -c sub1.c -o sub1.o
clean:
rm *.o
步骤二
- 执行makefile文件
命令:make
步骤三
- 执行编译生成的可执行文件main1
命令:./main1
三、与Windows系统下的编程对比
- 平台:Visual Studio 2013
步骤一
- 编写sub1.h文件
- 编写main1.c文件
步骤二
- 运行程序
与Ubuntu系统下的C语言程序编译相比,在Windows系统中的C语言程序只可以编译一个.c
文件加上多了.h
文件;而在Ubuntu系统下是由多了.c
文件转换生成的.o
文件连接成一个可执行的程序运行。
四、总结
在Ubuntu系统下的C语言程序编译,无论是直接使用gcc方式编译还是使用makefile文件的方式编译都需要将.c
文件先转换成.o
文件,再连接成一个可执行的程序这样的方式一步步实现,而不像在Windows系统下的编译平台中一键编译。这样的方式虽然不够简便,但可以更加直观的让我们了解高级语言程序在编译的时候所经历的步骤,如何变成可以被机器识别的可执行程序。
五、参考资料
https://blog.csdn.net/qq_45237293/article/details/108741893.