【Linux取经之路】Linux项目自动化构建工具-make/makefile & git三板斧 ...

愛在花開的季節  论坛元老 | 2024-9-17 07:30:51 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 1030|帖子 1030|积分 3090

目次

关于make和makefile
一个案例
make和makefile的使用 
makefile的根本语法
git的使用


关于make和makefile

make是 Linux 系统中广泛使用的一个自动化构建工具,它根据用户定义的规则(通常保存在一个名为 makefile的文件中)来自动编译和链接程序。make 工具的主要目的是自动化编译过程,淘汰重复的手动操纵,并确保编译过程的同等性和可重复性。make是一个表明makefile中命令的工具。一条命令(make)和一个文件(makefile),搭配使用,完成项目自动化构建。
一个案例

假设我们要实行的文件(main)里包含了3个源代码文件,分别是hello.c、world.c、test.c。为了得到可实行文件main,我们做如下的操纵。
hello.c:声明Add函数。
world.c:实现Add函数。
test.c:调用Add函数。
1)得到hello.o、world.o、test.o
2)将hello.o、world.o、test.o编译成main
  1. gcc -c hello.c -o hello.o
  2. gcc -c world.c -o world.o
  3. gcc -c test.c -o test.o
  4. gcc -o main hello.o world.o test.o
复制代码
编译的过程需要举行好多操纵,而且如果需要重新编译呢?上述的流程在整一遍?未免太烦人了吧,如果可以的话,能不能一步就完成上面的所有操纵?下面我们正式进入make和makefile。 
make和makefile的使用 

我们先在当前目次下新建一个makefile文件,文件内容如下:

第二行开头是Table键产生的空格。第一行叫做依赖关系,第二行叫做依赖方法。下面我们来使用makefile指定的规则举行编译操纵。

我们在使用make的时间,它会去读取makefile的内容,并根据内容直接去给它编译相关的文件。
如果我们一连make,会怎样呢?

它会提示我们,现在main文件已经是最新了。 
如今,我们来总结一下make的好处,接着在谈makefile的根本语法。
make的好处:
        ● 简化编译时所需要实行的命令。
        ● 若在编译完成之后,修改了某个源文件的代码,则make仅会针对被修改了的文件举行编译,其他的目标文件不会被修改。
        ● 可以依照依赖性来更新实行文件。
makefile的根本语法

  1. 目标:目标文件1 目标文件2
  2. <Tab>    gcc  -o  欲建立的执行文件  目标文件1  目标文件2  
复制代码
其中,第1行叫做依赖关系。也就是说,目标实行文件的天生要依赖于目标文件1和目标文件2。第二行,注意:命令行必须以Tab键作为开头。此行叫做依赖方法。也就是指明白目标实行文件是怎样依赖目标文件1和目标文件2的。下面总结makefile的根本语法:
        ● 在makefile中#表示注释。
        ● 命令行必须以<Tab>键作为开头。
        ● 目标与目标文件之间需要以 [ : ] 隔开。
下面,我们接着上面的例子,讲一讲怎样实行一个命令就可以清掉所有的目标文件和实行文件。

这里,定义了一个clean,它没有依赖关系,只有依赖方法。我们来看看实行clean的效果。
实行clean时,它实际上实行的是它对应的依赖方法,确实把所有的.o文件和目标文件都删除了。但是,makefile中重复的数据是不是有点多了?下面我们借助Shell脚本来简化makefile。

我们来实行看看效果。

这是符合预期的。makefile中的OBJS就是我们定义的一个变量,我们通过这个变量来简化了makefile,下面我们看看变量的根本语法。
        ● 变量与变量内容用=隔开,同时两边可以具有空格。
        ● 在习惯上,变量最好以大写字母为主。
        ● 运用变量时,以$(变量)或${变量}使用。
介绍一个特别变量:$@,代表当前的目标(比方上面的main)。利用这点,我们再来把makefile简化一下。

git的使用

CentOS下,安装指令:sudo yum install -y git
Ubuntu下,安装指令:sudo apt install -y git
下载Gitee上的项目到本地
命令:git clone [url]
url表示项目的链接。
下面我以我本身在Gitee上的堆栈为例举行实操(当然,你也可以创建一个新的堆栈举行测试)。


 


 
复制框住的命令到终端实行就可以将此堆栈中的所有代码下载到本地了。我的堆栈里代码较多而且很杂,请使用本身的堆栈举行测试。

实行完该指令后,Gitee上的代码确实下载到了本地。


 
git的设置 
将下面框住的指令复制到终端实行即可。


 
好了,怎样下载Gitee上的项目已经讲解完毕,下面进入git的三板斧,以test.c文件为例。
三板斧第一招:git add 
1)将test.c移到pchlany中。
2)git add test.c
此时,只是把test.c添加到了git的暂存区中。
介绍一个命令:git status —— 表现当前工作目次和暂存区的状态。

三板斧第二招:git commit 

三板斧第三招:git push

 

下面,我们到Gitee堆栈里看看,有没有提交成功。
 可以看到,确实提交成功了。 

本文到这就结束啦~感谢您的支持! 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

愛在花開的季節

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表