Linux常用工具
五、make/Makefile 项目自动化构建工具
(一)makefile
makefile (Makefile) 是一个文本文件,记录一个项目的构建规则流程
makefile 的编写规则
目标对象:依赖对象
\t 为了生成目标对象所需要执行的命令
创建一个makefile --------> vi makefle
表示要使用已经存在的 test.c 文件生成 test 文件的构建规则:
(其中 test 为目标对象,test.c 为依赖对象)
makefile 中预定义变量的使用
$@:表示目标对象
$^ :表示依赖对象
$<:表示依赖对象的第一个
%:匹配符
(注:在makefile 中注释使用的是 # )
(二)make
make 是一个解释程序,对 makefile 中记录的构建规则流程逐步进行解释执行,完成项目的构建
make 与 makefile:
编写 makefile 规则,执行 make 指令的目录下寻找 makefile 文件,然后生成相应的规则:
1、make 查找第一个目标对象,作为终极目标对象(最重要生成的文件),make 在完成了终极目标对象(makefike 第一个目标对象–第一行)的指令之后就会退出
2、检测依赖对象与目标对象之间的关系,判断目标对象是否需要重新生成,若目标对象不存在则需要生成;若在目标对象生成之后依赖对象有了一定的修改则需要重新生成
3、若目标对象要生成,但是依赖对象不存在或需要重新生成,则会查找依赖对象的生成规则,先生成依赖对象
示例:
make 逐步生成目标对象:
make 的执行规则
1、在命令行输入 make 指令,则表示运行 make 解释程序,程序会在当前目录下进行寻找 makefile/Makefile 的文件,解释执行其中的项目构建规则;
2、在规则中找到第一个要生成的目标对象(判断目标对象是否已经存在,存在则需要重新生成----根据源码文件最后一次修改时间进行对比),然后执行对象生成这一命令;
3、make 每次在 makefile 中只会找到第一个目标对象进行生成,生成之后就会退出(不会去生成第二个目标对象);
4、make 在生成目标对象时会先检查依赖对象的生成规则:
先生成依赖对象,再根据依赖对象生成目标对象
注:编译与链接分开进行的好处
清理规则 make clean
make clean 进行清理
在 makefile 中编写 clean 规则,然后直接在命令行执行 make clean
伪对象 .PHONY
与外部的实际文件解除关联关系,声明一个目标对象与外部文件无关,表示每次这个对象不管是否最新都要重新生成
声明 .PHONY
. PHONY:clean 声明 clean 为伪 对象
$(wildcard ./*.c) 获取所有 .c 结尾文件
makefile 中 SRC 变量与 OBJ
六、git 项目版本管理工具
git 项目版本管理工具:为了整理归档项目周期的各个阶段,便于项目的管理(便于出错后回滚)
(一)git 三板斧工具
首先在Linux中查看是否安装了 git 版本工具:
git --version:查看 git 版本信息,若能够查看到 版本信息则说明当前Linux当中已经安装了 git 工具,若检测不到 git 版本则说明未安装 git 工具,需要进行安装
sudo yum install git:安装 git 工具/更新成最新版本
git 三板斧操作:
1、在GitHub上创建远程仓库;
2、将远程仓库克隆到本地:git clone https:// …;
3、提交本次修改记录:
提交所有文件记录:git add --all ./
提交某个文件的记录:git add path/filename
4、提交本地仓库版本信息:git commit -m “修改备注”
5、将本地版本同步到远程仓库:git push origin master (master
是主分支)
(二)git 的使用
向新创建的git仓库中上传文件信息
初始化空项目(需要切换到 root 管理员用户):
git init:
提交本地修改信息:
git commit -m “备注”
提交到 git 仓库地址:
git remote add origin https://…
在进一步提交到远程仓库:
git push -u origin master
此时可以在 git 中查看到上传的文件信息:
修改git 仓库信息之后重新上传
创建一个 gittt 目录-------> 本地仓库:
将远程仓库Linux- 克隆到本地仓库(gittt目录下):
git clone https://…
查看到当前Linux- 仓库中包含四个文件信息 :
Makefile、test、test.c、test.exe
修改本地仓库的文件信息(删除 test 文件):
提交修改记录到本地仓库:
git add --all ./
git commit -m “备注”
提交到远程仓库Linux- 中:
git push origin master
再次查看 git 远程仓库中文件信息,可以看到保存的是修改之后的文件信息:
git 中登录个人账号信息
git config --global user.email “you@example.com” git config --global
user.name “Your Name”
说明:文中出现的 “https://…” 开头的为自己新建仓库的地址信息
(博客内容全为原创,有任何问题请评论私聊哦~~~~)