基于Ubuntu的C语言编译以及Makefile方式编译
- 准备工作
-
- 安装gcc
- gcc编译
-
- 编写一个主程序文件main1.c和子程序文件sub1.c
-
- 新建文件main1.c
- 新建文件sub1.c
- 用gcc编译文件
- 运行代码
- makefile编程
-
- 新建文件makefile
- 编译makefile
- 运行代码
- windows系统下编译上述程序
准备工作
下载并安装好Ubuntu64位,并打开终端。
安装gcc
gcc一般是在安装完Ubuntu时默认自带安装在里面的,不需要重复安装
检查是否安装了gcc
输入命令:
gcc --version
即可检查是否安装了gcc
如果显示未安装
1.安装gcc
输入命令:
sudo apt install gcc
等待安装gcc完成
2.安装build-essential
与gcc同步使用需安装build-essential软件包来提供编译必要的软件包
输入命令:
sudo apt install build-essential
等待安装完成
到此准备工作已经完成
gcc编译
编写一个主程序文件main1.c和子程序文件sub1.c
新建文件main1.c
输入命令:
touch main1.c
即可创建一个名为main1.c的文件
输入命令:
vim main1.c
即可打开文件编辑
按I开始在光标处插入
输入代码:
#include<stdio.h>
int main()
{
float c;
c=x2x(100,2);
printf("%f",c);
printf("\n");
return 0;
}
按ESC回到命令模式
输入:wq
退出vim编辑器并保存
新建文件sub1.c
输入命令:
touch sub1.c
即可创建一个名为sub1.c的文件
输入命令:
vim sub1.c
即可打开文件编辑
按I开始在光标处插入
输入代码:
float x2x(int a,int b)
{
float c;
c=a-b;
return c;
}
按ESC回到命令模式
输入:wq
退出vim编辑器并保存
用gcc编译文件
输入命令:
gcc main1.c sub1.c
即可编译并生成一个可执行文件a.out
这里有一个警告是因为在主程序中没有x2x这个函数
只需要在main函数前声明一下
main1.c文件代码更改如下:
int x2x(int a,int b);
int main()
{
float c;
c=x2x(100,2);
printf("%f",c);
printf("\n");
return 0;
}
此时再编译没有警告
运行代码
输入命令:
./a.out
即可运行代码
结果如下
makefile编程
在编写好main1.c和sub1.c之后
新建文件makefile
输入命令:
touch makefile
即可创建一个名为makefile的文件
输入命令:
vim makefile
即可打开文件编辑
按I开始在光标处插入
输入代码:
main1:main1.o sub1.o
gcc -o main main1.o sub1.o
main1.o:main1.c
gcc -c main1.c
sub1.o:sub1.c
gcc -c sub1.c
按ESC回到命令模式
输入:wq
退出vim编辑器并保存
编译makefile
输入命令:
make
生成文件main
运行代码
输入命令:
./main
即可运行代码
结果如下
windows系统下编译上述程序
软件:Microsoft Visual Studio Enterprise 2017
代码同上
编译并运行
结果如下
至此我们完成了在ubuntu下使用gcc编译和用makefile方式编译以及在Windows环境下编译并最终成功运行程序
- 完成任务