一、不同环境下C语言的编译
1.编写简单的Hello world程序
1)使用文本编辑器创建一个新的C文件。你可以使用 nano
或者 vim
等编辑器。例如,输入以下命令来创建一个名为 hello.c
的文件
nano hello.c
2)在打开的编辑器中,输入以下C语言代码:
#include <stdio.h>
int main() {
printf("Hello World\n");
return 0;
}
3)按 Ctrl + X
,然后按 Y
确认保存,最后按 Enter
键来保存文件。
4)在终端输入以下命令:
gcc hello.c -o hello
5)输入以下命令来运行程序
./hello
2.编写c程序(使用nano进行编写)
1)编写main1.c
#include<stdio.h>
#include"sub1.h"
int main()
{
int x=2,y=3; //定义x和y变量
printf("sum is:,%.2f\n",x2x(x,y)); //输出处理后的值,保留两位小数
return 0;
}
2)编写子程序(sub1.h)
#ifndef __SUB1_H
#define __SUB1_H
#include<stdio.h>
float x2x(int x,int y); //计算b除以a的结果
#endif
3)编写sub1.c
#include "sub1.h"
float x2x(int x,int y)
{
float sum;
sum=(float)y/x;
return sum;
}
4)用gcc命令编译
-
gcc -c sub1.c
作用:将sub1.c程序转换为目标文件sub1.o
-
gcc main1.c sub1.o -o main1
作用:编译main1.c文件为目标文件main1.o,然后链接sub1.o目标文件生成main1可执行文件
-
./main1
作用:编译运行main1程序
运行结果如下:
3.Win11编写程序
这里使用的是dev c++
1)编写main1.c,代码如下:
#include<stdio.h>
#include<iostream>
#include"sub1.h"
int main()
{
int x=2,y=3; //定义x和y变量
printf("sum is:,%.2f\n",x2x(x,y)); //输出处理后的值,保留两位小数
return 0;
}
2)编写sub1.h,代码如下:
#include<stdio.h>
float x2x(int x,int y)
{
float sum;
sum=(float)y/x;
return sum;
}
运行结果如下:
二、Makefile方式进行编译主程序
Makefile是一种文本文件,用于描述软件项目的构建规则和依赖关系,通常用于自动化软件构建过程。Makefile的主要组成部分包括目标(Target)、依赖(Dependencies)和命令(Commands)。基本格式如下:
target: dependencies
command//command前面为一个tab
1)编写Makefile文件
使用nano编写,输入以下代码:
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
2) 使用Makefile编译c程序
- 在源文件目录下执行命令
make
- 在源文件目录下执行命令
make clean
三、总结
这次在Ubuntu系统上编写C语言并运行的实验,我使用了nano编写并运行和Makefile进行编译这两种生成可执行文件的方式,通过一步步编写程序使得我对Ubuntu上C语言编译更加熟练。在Ubuntu系统下使用C语言结合Makefile编程,让我深刻体会到了自动化构建工具的便利。通过编写Makefile,我能够轻松管理编译过程,只需一个make
命令就能编译整个项目,大大简化了编译命令的输入。同时,Makefile的依赖管理确保了只有当源文件发生变化时,才会重新编译,提高了编译效率。