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

文章目录

  • 一、前言
  • 二、概念
    • 什么是gcc/g++?
    • 什么是make/makefile?
  • 三、教程
    • 3.1gcc/g++命令
    • 3.2make/makefile
      • 依赖关系
      • 依赖方法
      • 编写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个源文件,你需要将两个源文件都写入依赖方法和依赖关系里!

四、资源

  • 进击的算法之回溯算法
    本文分析经典的回溯题目,带你入门回溯算法!
  • 进击的算法之动态规划
    本文分析经典的动态规划题目,带你入门动态规划!
  • LINUX工具篇——vim的使用及配置
    本文主要介绍lINUX中常用的文本编辑器Vim的使用以及配置。
  • C++入门详解
    本文讲解C++基础语法。

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

  1. Linux | 编译原理、gcc的命令参数、自动化构建工具 make/Makefile

    文章目录 编译原理 预处理 编译 汇编 链接 gcc的常用命令参数 make 和 Makefile 的概念 make的运行 通配符 自动化变量 伪目标.PHONE:[命令] 编译原理 在解释 make ...

  2. linux 下项目自动化构建工具makefile详解

    什么是makefile 一个工程中的源文件不计其数,其按类型.功能.模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚 ...

  3. 前端自动化构建工具之webpack入门——简单入门

    写在前面 这篇博客也是参照别人的webpack入门,加上自己的一些操作,还有我在此过程中遇到的困难.如果是已经入门的或者这方面的高手,请绕行,也请勿吐槽. 正文开始 我们为什么要学习webpack 首 ...

  4. 前端自动化构建工具:用Gulp4.0搭建一个基本的前端开发环境

    一个项目的完成一般需要经过三个步骤:初始化.开发和部署.在前端开发过程中,我们经常需要依靠一些自动化构建工具来优化前端工作流程,来帮助我们完成一系列繁琐的工作,例如浏览器热更新.ES6编译.代码压缩. ...

  5. (28)自动化构建工具Gulp

    一.自动化构建工具介绍 Grunt:它是最早的自动化构建工具,它是基于临时文件进行构建的,构建速度慢. Gulp:它是基于内存进行构建的.是我们目前最流行最常用的自动化构建工具.构建速度快,上手更容易 ...

  6. 前端工程化实战 - 自动化构建工具

    文章目录 一.自动化构建简介 二.自动化构建初体验 2.1 场景描述 2.2 实际操作体验 三.常用的自动化构建工具 3.1 Grunt 3.2 Gulp 3.3 FIS 四.自动化构建工具 Grun ...

  7. 使用Jenkins配置iOS自动化构建工具

    关于iOS自动化构建其实并不复杂,通过一些简单的Git与Xcode指令,加上UI,我们自己也可以动手编写一款自动化构建工具.这在之前的博客中也有涉及,有兴趣的朋友可以在如下地址找到这篇博客: 自己动手 ...

  8. express搭建项目--express自动化构建工具

    express自动化构建工具 一.   安装express-generator 全局安装express自动化构建工具 npm install -g express-generator 使用expres ...

  9. python自动化构建工具_Python自动化构建工具scons使用入门笔记

    这段时间用到了scons,这里总结下,也方便我以后查阅. 一.安装sconsLinux环境(以CentOS为例) 1.yum安装 yum install scons 2.源码安装 下载scons:ht ...

最新文章

  1. 生信服务器入门级基本设置
  2. PMP-【第15章 PMP考试的难点与易点】2021-2-17(304页-312页)【完】
  3. centos 安装搜狗输入法_Ubuntu 20.04 安装搜狗输入法
  4. HDU ACM 1162 Eddy's picture
  5. DELPHI加密字串(异或运算加密)
  6. 直接将自身代码注入傀儡进程
  7. 数据可视化【四】Bar Chart
  8. 大型网站技术架构(六)--网站的伸缩性架构(转)
  9. 从起始点到目标点的最短步数(BFS)
  10. 腾讯“立知”被指抄袭“即刻” APP,目前已被下线
  11. Android GC机制介绍
  12. 小甲鱼c语言版:八皇后问题解决思路
  13. win10 插入鼠标自动禁用触摸板的方法
  14. 直插电阻的分类和区别
  15. STM32f429开发中USB读写文件涉及到的库移植
  16. App推广统计代替渠道包统计的方法
  17. 什么是UEFI启动?
  18. 9 种流行的文件、文件夹比较工具点评 (转贴)
  19. Locust 压力测试工具学习(一)
  20. 利用DHT11和水位传感器监测温湿度和水位的arduino实验

热门文章

  1. 谐波平衡 matlab,增量谐波平衡法程序
  2. 沙子是如何变成CPU的
  3. 银行卡归属地怎么查询?
  4. 一键批量查询快递单号
  5. 使用cronolog日志切分工具切分Tomcat的catalina.out日志文件
  6. H5在微信里只能调用相机,不能调用相册
  7. Vue父子组件生命周期的执行顺序
  8. 使用数据恢复软件恢复数据的详细教程
  9. Broadcast Variables广播变量
  10. 计算机网络基础自我评价,计算机网络自我评价