在Ubuntu系统下使用gcc和Makefile编译程序

(一)用gcc编译C程序并运行

1.在终端中安装gcc
  • 输入下列命令
sudo apt update

回车后输入密码后更新包列表
在这里插入图片描述

  • 输入下列命令安装软件包
 sudo apt install build-essential

在这里插入图片描述

  • 输入”Y“后回车继续

  • 输入以下命令验证gcc编译器是否安装成功

gcc --version

在这里插入图片描述

如图出现gcc 9.3.0即表示安装成功!

2.用gcc编译C程序
(1)编写一个hello.c文件
  • 在Documents中打开终端

  • 输入touch命令创建一个名为hello的文件夹

touch hello.c
  • 输入nano命令打开hello.c文件
nano hello.c
  • 写入代码后”ctrl s“保存,然后退出
#include<stdio.h>
int main(void)
{
  printf("HELLO WORLD\n");
  return 0;
}
  • 输入以下命令将hello.c文件进行预处理、汇编、编译并链接形成可执行文件hello,-o选项用来指定输出文件的文件名。
gcc hello.c -o hello
  • 输入以下命令得到输出结果(“.”代表当前目录)
./hello
  • 运行结果如下
    在这里插入图片描述
(2)编写一个主程序文件main1.c和子程序文件sub1.c
  • 用上述方法创建一个文件main1.c,并写入程序然后保存
#include"sub1.c"
int main()
{
     int x=2,y=5;
     printf("%.2f\n",x2x(x,y));
     return 0;
}
  • 用同样的方法创建文件sub1.c,并写入程序然后保存
#include<stdio.h>
float x2x(int x,int y)
{
    float ans;
    ans=(float)y/(float)x;
    return ans;
}
  • 输入以下命令将main1.c文件进行预处理、汇编、编译并链接形成可执行文件main1,然后得到输出结果

在这里插入图片描述

(二)在Windows平台编译C程序并运行

  • 在vs2019上创建一个新.cpp文件,命名为源,然后输入代码
//main1.c
#include<stdio.h>
#include"sub1.c"
float x2x(int x, int y);
int main(void)
{
	int x = 2, y = 5;
	printf("%.2f", x2x(x, y));
	return 0;
}

  • 再创建一个新.c文件,命名为sub1,然后输入代码
//sub1.c
#include<stdio.h>
float x2x(int x, int y)
{
	float ans;
	ans = (float)y / (float)x;
	return ans;
}
  • 再进行本地调试,开始编译执行代码,结果如下
    在这里插入图片描述

(三)使用Makefile编译C程序并运行

  • 输入touch命令创建一个txt文件并命名为makefile
touch makefile.txt
mv makefile.txt makefile
  • 在makefile文件中写入以下代码
//注意使用tab缩进
main1:main1.o  //左边的main1是目标文件,目标文件依赖于冒号右边
	gcc main1.o -o main1  //必须以tab开头隔开
main1.o:main1.S
	gcc -c main1.S -o main1.o
main1.S:main1.i
	gcc -S main1.i -o main1.S
main1.i:main1.c
	gcc -E main1.c -o main1.i
.PHONY:  //伪目标标记,伪目标标记后的命令不会和目录下文件重复
         //也就是说clean如果没有伪目标标记的话,目录下有一个clean的文件
         //make clean将不会正确执行
clean:
	rm -rf main1.o main1.S main1.i main1
  • 打开终端,输入make命令得到可执行文件main1;编译后用make clean命令进行清除
make  
make clean
  • 结果如下
    在这里插入图片描述

// 初次写博(●ˇ∀ˇ●),请多多指教(ง •_•)ง

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值