| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> 【Linux】Linux项目自动化构建工具-make/Makefile(学习复习兼顾) -> 正文阅读 |
|
[系统运维]【Linux】Linux项目自动化构建工具-make/Makefile(学习复习兼顾) |
目录 0. 前言? ? ? ? 如果你没听过或不会用 make/Makefile 就不要说你写过大项目! ????????此博客为博主以后复习的资料,所以大家放心学习,总结的很全面,每段代码都给大家发了出来,大家如果有疑问可以尝试去调试。 ????????大家一定要认真看图,图里的文字都是精华,好多的细节都在图中展示、写出来了,所以大家一定要仔细哦~ ? ? ? ? 感谢大家对我的支持,感谢大家的喜欢, 兔7 祝大家在学习的路上一路顺利,生活的路上顺心顺意~! 1. 背景
2. 使用
? ? ? ? ? 这就通过依赖关系生成了一系列文件: ? ? ? ? 当然这里就有一个小知识了,我们平时在一条命令行中只使用了一条命令,其实还可以执行多个命令,次序也是按照写的顺序去执行,接下来我就展示一下。 2.1 伪目标 ? ? ? ? 这里说理论听了也不懂,我直接展示区别就好了: ? ? ? ? 也就是上面说的,伪目标总是被执行,而目标如果更新到最新,就不会重新进行编译。 ????????其实将目标设置成伪目标也不是不可以,只是没有意义,如果已经是最新的了,那么就没必要再进行编译生成一份。 2.1 依赖关系? ? ? ? 上面已经标记的很清楚了,也就是mytest的生成需要依赖下面的步。 ????????但是实际中,我们其实不需要写这么多依赖关系。 ? ? ? ? 但是在刚开始用的时候最好写全,因为只有你可以写全,你就可以很清楚的理解它们之间的依赖关系。 ? ? ? ? 大家认为如果这样写是不是很简洁了,但其实还有更简洁的写法: ? ? ? ? 当然也可以写成下面这样,上面那样写是为了介绍清楚这里的所有用法: 2.2?原理????????make是如何工作的,在默认的方式下,也就是我们只输入make命令。那么,
2.3?项目清理
3.?Linux小程序-进度条3.1?\r&&\n
3.2 行缓冲区概念? ? ? ? 大家看看下面的代码运行起来有什么区别: ? ? ? ? 有的小伙伴可能认为有区别,有的可能认为没有,接下来因为图片不是很好解释,我就图片加文字给大家解释清楚: ? ? ? ? 由此可见,加 '\n' 和不加 '\n' 的区别。 ? ? ? ? 这时可能有小伙伴感觉很奇怪,我们开始学C语言的时候就知道,代码的执行是从上到下依次执行,那么这里既然等了3秒后再打印的,那么是不是先执行的sleep再执行的printf呢? ? ? ? ? 当然,不是!代码的执行是从上到下依次执行的,这点肯定没有问题,所以也肯定是先执行的printf后执行的sleep,至于为什么先等3秒后打印,这里就涉及到缓冲区的概念了。(当然你们也可以去VS编译器去试试,会有意外收获哦~) 3.1 缓冲区? ? ? ? 那么我们要想看着是先打印再休眠3秒可不是不可以,我们可以手动刷新缓冲区: ? ? ? ? 那么最开始提到了 '\r' 这个是什么呢? ? ? ? ? 这个 '\r' 是回车,而?'\n' 则是回车换行。 ????????1、 '\r' 是使光标回到旧行(当前行)的开头。 ? ? ? ? 2、 '\n' 是回车+换行,也就是到当前行的下一行的开头。 ? ? ? ? 那如果这里使用? '\r' 会是什么情况呢? ? ? ? ? 我们会发现,不仅没有先打印,而且到最后还不打印了。 ? ? ? ? 使用了 '/r' 要是重新写入内容,会将这一行的内容进行覆盖式写入。 ? ? ? ? 那么既然会覆盖式写入,那想想我们平时下载时的进度条,是不是与这个原理很相似? 4. 进度条代码? ? ? ? 在写进度条之前,我们先写一个简单的倒计时:
? ? ? ? 由于博主不会使用gif动画(主要是我找到的gif动画需要会员,要不然他不给我用!),所以就不给大家演示了,这个的效果出来就是倒计时,大家下去可以去试试~ ? ? ? ? 如果这样写的话,i大于9以后就会有问题,因为我们只是对第一个字符进行覆盖式写入,但是第二位的字符我们覆盖不到,所以就会出现问题,所以我们只要将打印的规则改为%2d(%-2d)就可以了,因为不足位数的会用空格代替。
? ? ? ? 接下来就是写进度条了: ? ? ? ? 首先进度条要用符号来代替运行了多少,也要显示加载到了百分之多少,这两点是必备的。 ? ? ? ? 还有一个就是如果进度条停止了,用户可能不知道是电脑死机了还是正在下载中,所以我们要设置一个标识,比方说:设计一个小风扇转圈。让用户知道是正在下载......
? ? ? ? 当然这里还是给大家看不了动画版,大家有兴趣,自己下去写一写,然后去看一看,会很有意思的,然后我将运行完后的和运行中的截图了,大家凑合看一看~ 5. 使用 git 命令行5.1?下载项目到本地创建好一个放置代码的目录。
????????url 用http的网址,因为很方便使用。 5.1.1?三板斧第一招: git add
????????将需要用 git 管理的文件告知 git 5.1.2?三板斧第二招: git commit????????提交改动到本地
提交的时候应该注明提交日志, 描述改动的详细内容。 5.1.3 三板斧第三招: git push
需要填入用户名密码,也就是登录gitee或者github的账号和密码。 5.2?配置免密码提交? ? ? ? 这里可以设置免密码登录,当然不是很推荐,因为可能时间一长机会忘记自己的密码,所以还是手动输入为好~ ??????????如上就是?Linux项目自动化构建工具-make/Makefile 的所有知识,如果大家喜欢看此文章并且有收获,可以支持下 兔7 ,给?兔7 三连加关注,你的关注是对我最大的鼓励,也是我的创作动力~! ? ? ? ? 再次感谢大家观看,感谢大家支持! |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 12:03:10- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |