【LINUX修行之路】——工具篇gcc/g++的使用和自动化构建工具make/makefile

在这里插入图片描述

学习范围:✔️LINUX ✔️ gcc/g++✔️make/makefile
本文作者:蓝色学者

一、前言

欢迎大家来到我的频道,本次教程主要讲解LINUX操作系统下编译器gcc/g++的使用和自动化构建工具make/makefile,让你巧妙地知道两个工具的作用。

二、概念

什么是gcc/g++?

gcc/g++ 是一款编译器,我们知道,程序编译会经历四个阶段:预处理、编译、汇编、链接
只是在诸如VS2022、IDEA等集成开发环境中,上述四个步骤被合并为一步执行,而在LINUX下,我们可以一步一步执行。

什么是make/makefile?

一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,也可以执行操作系统的命令。

重要
make是一条命令,而makefile是一个文件,两者搭配使用,完成项目自动化配置

三、教程

3.1gcc/g++命令

通用格式:gcc [-选项] [要gcc的文件名] [-o] [生成的文件名]

  1. 只预处理:gcc -E test.c -o test.i
  2. 只编译: gcc -S test.i -o test.s
  3. 只汇编: gcc -c test.s -o test.o
  4. 可执行: gcc test.o -o a.out

这里只需要知道如何使用命令即可,若要了解程序编译详细过程,请访问:程序编译详解

将一个源文件[test.c] 依次执行上述命令
在这里插入图片描述

按照预期得到了我们想要的文件
在这里插入图片描述

3.2make/makefile

首先,我们要创建一个makefile文件,文件名称只能是makefile ,使用vim进行编辑,若要了解文本编辑器Vim如何使用,请访问: Vim使用详解

依赖关系

  • [a.out] 依赖于[test.o]
  • [test.o] 依赖于[test.s]
  • [test.s] 依赖于[test.i]
  • [test.i] 依赖于[test.c]

依赖方法

有了上面的依赖关系,上面的gcc命令即是对应的依赖方法!

备注
依赖关系和依赖方法缺一不可,明确了依赖关系和依赖方法,才可以编写makefile文件!

编写makefile文件

按照依赖关系和依赖方法完成编写
在这里插入图片描述

图中蓝色是目标文件,白色是需要的文件,黄色是依赖方法

完成makefile编写后,在命令行窗口输入make 即可实现自动化编译,你也可以使用make clean命令来一键删除你想删除的所有文件

备注
若你写的文件有2~3个源文件,你需要将两个源文件都写入依赖方法和依赖关系里!

四、资源

  • 23
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 17
    评论
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝色学者i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值