当前位置: 首页 > web >正文

Linux自动化构建工具(一)

在这里插入图片描述
在这里插入图片描述


🎁个人主页:工藤新一¹

🔍系列专栏:C++面向对象(类和对象篇)

🌟心中的天空之城,终会照亮我前方的路

🎉欢迎大家点赞👍评论📝收藏⭐文章


文章目录

  • Linux自动化构建工具
    • 一、make进度条
      • 1.1make/Makefile
      • 1.2 .PHONY
      • 1.3Modify 的新旧时间问题
    • 二、Makefile 的推导规则
      • 2.1程序编译的过程
      • 2.2 Makefile的多文件操作
    • 三、进度条(命令行版本)
      • 3.1对于 printf 的基本认识
      • 3.2理解显示功能
      • 3.3写什么样的进度条?
        • 3.3.1原理版(version1)
        • 3.3.2(version2)
        • 3.3.3补充内容 - 回调函数

Linux自动化构建工具

一、make进度条

1.1make/Makefile

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


1.2 .PHONY

在这里插入图片描述


1.3Modify 的新旧时间问题

在这里插入图片描述


在这里插入图片描述


二、Makefile 的推导规则

2.1程序编译的过程

在这里插入图片描述


在这里插入图片描述


  • $BIN 可视作对 BIN 进行解引用操作

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


2.2 Makefile的多文件操作

  • 方案一(version1):

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


  • 方案二(version2):

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


三、进度条(命令行版本)

  • 回车(\r)换行(\n)[回车换行是两个不同的符号]

  • 缓冲区:笼统上可以理解成一段内存块

3.1对于 printf 的基本认识

  • fflush(stdout)printf 中存放在缓冲区的 %d 刷新回显到屏幕上

在这里插入图片描述


在这里插入图片描述


3.2理解显示功能

  • Linux编程语言 中,“显示” 是一个基础但重要的概念,它指的是将信息呈现给用户的过程

在这里插入图片描述


在这里插入图片描述


3.3写什么样的进度条?

[#### ] [53%] [/]

3.3.1原理版(version1)

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


3.3.2(version2)
  • 上述,我们原理版本的进度条可以运行,但 无法使用,如下载时,进度条(每秒固定的变化)和下载程度(根据网速来回拉扯)不匹配

  • 一个进度条一定需要结合具体的场景,进行动态更新(如,按照某时某刻下载程度,实时的返回给进度条)

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


3.3.3补充内容 - 回调函数

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述
🌟 各位看官好我是工藤新一¹呀~

🌈 愿各位心中所想,终有所致!


http://www.xdnf.cn/news/15260.html

相关文章:

  • pdf拆分
  • 《打破预设的编码逻辑:Ruby元编程的动态方法艺术》
  • LVS负载均衡-DR模式配置
  • 进制转换原理与实现详解
  • 【unity编辑器开发与拓展EditorGUILayoyt和GUILayoyt】
  • RISC-V:开源芯浪潮下的技术突围与职业新赛道 (三)RISC-V架构深度解剖(下)
  • 【八股消消乐】浅尝Kafka性能优化
  • 【面板数据】省级泰尔指数及城乡收入差距测算(1990-2024年)
  • Vue集成MarkDown
  • 开源界迎来重磅核弹!月之暗面开源了自家最新模型 K2
  • UC浏览器PC版自2016年后未再更新不支持vue3
  • Git Submodule 介绍和使用指南
  • 服务器机柜与网络机柜各自的优势
  • 2025最新版Docker讲解/面试/命令/容器化技术
  • Marin说PCB之Allegro高亮BOM器件技巧详解
  • 【Linux】C++项目分层架构:核心三层与关键辅助
  • 报错 | “pnpm : 无法将“pnpm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,
  • 基于ASP.NET MVC+SQLite开发的一套(Web)图书管理系统
  • SHA-256算法流程分析与演示——github工程完善
  • 基于k8s环境下pulsar高可用测试和扩缩容(上)
  • Flask 入门到实战(3):用 SQLAlchemy 优雅操作数据库
  • Linux 进程管理核心机制
  • 【mac】快捷键使用指南
  • 【AI大模型】RAG系统组件:向量数据库(ChromaDB)
  • 飞算 JavaAI 体验:重塑 Java 开发的智能新范式
  • LeetCode--43.字符串相乘
  • JVM故障处理与类加载全解析
  • ✨ FastMCP 实战进阶:构建可远程访问的 MCP 工具服务与客户端(Python 深度解析)
  • Elasticsearch混合搜索深度解析(上):问题发现与源码探索
  • 【flutter】flutter网易云信令 + im + 声网rtm从0实现通话视频文字聊天的踩坑