赞
踩
作者:爱写代码的刚子
时间:2023.7.7
前言:本篇博客主要介绍项目自动化构建工具make/makefile和git的基本使用,后面将会继续介绍他们的进阶使用,总结不易,希望能够支持刚子。下篇博客将会介绍gdb调试。
首先创建一个test.c的文件
再创建makefile文件
使用vim编辑makefile文件
第一行表示文件之间的依赖关系,第二行表示依赖方法
使用vim编辑test文件
直接使用make指令会生成test可执行程序
使用make clean会删除test这个可执行程序文件
【解释】:因为没有必要,如果项目很大的话,如果文件已经是最新的话,重复执行make将会耗费时间,且没什么收益。
【附加问题1】:make如何识别文件是否已经是最新的呢?
答:
例如:更改文件大小也会改变文件属性。
Access由于更改的频率的频率较高,更新的情况要写进磁盘中,当多人对磁盘进行操作时,而磁盘是外设,效率将会变得非常低,不利于Linux整机效率的提高。所以最新的Linux对Access的更改策略变为了根据Modify和Change的更新的次数和最近更新的文件的它里面维护的一个计数器来决定是否更改。
touch 文件名将文件的所有时间改为最新
touch -m 文件名将文件Modify时间改为最新的同时也将Change的时间改为最新
touch -a 文件名将文件Access时间改为最新的同时也将Change的时间改为最新
然后将时间转为时间戳进行比较文件的新旧。(比较Modify的最近修改时间)
验证演示:
更改文件的时间,使其能够再次编译:
时刻注意:文件 = 文件内容 + 文件属性
【问题2】当clean放在makefile文件开头时为什么只会执行clean?
问题现象:
【解释】:make会自上向下扫描makefile,将要形成的第一个文件充当为make的默认动作。所以我们建议将clean动作放在下面。
总结:
make会自动推导makefile中的依赖关系
推导的过程是一种栈式结构
make会根据源文件和目标文件的新旧,判定是否需要重新执行依赖关系进行编译!不一定总是执行。
如果我们想要让项目文件使用make指令时总是执行如何做到?
答:可以将文件设置成伪目标文件(但是我们不建议将要形成的目标文件设置成伪目标文件)
.PHNOY修饰的文件,后面的命令将总是被执行。
make是如何进行工作的呢?
在linux上输入yum install git指令(需要root权限)
利用cp指令将需要push的文件拷贝到当前仓库目录:
注意日志部分一定要详细写,要写准确一点。
第一次使用git可能会遇见以下问题:
【解决办法】:
输入提示的指令,并填入自己的邮箱和姓名,因为gitee可能要对代码进行溯源。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。