Linux基础——Linux开发工具(make/makefile,git)

这篇具有很好参考价值的文章主要介绍了Linux基础——Linux开发工具(make/makefile,git)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:在经过前面两篇学习,大家对Linux开发工具都有一定的了解,而在此之前最重要的两个工具就是vim,gcc。


如果对这两个工具不太了解,可以先阅读这两篇文章:
Linux开发工具 (vim)
Linux开发工具 (gcc/g++)


Linux基础——Linux开发工具(make/makefile,git),Linux,linux


首先让我们来初步了解一下本篇的目标:
1. 学习make/makefile,并能简单使用
2. 学习git使用,并能简单使用

Linux基础——Linux开发工具(make/makefile,git),Linux,linux

本篇主要内容
Linux项目自动化构建工具 - make/Makefile
git仓库管理 - git

Linux基础——Linux开发工具(make/makefile,git),Linux,linux


1. Linux项目自动化构建工具 - make/makefile

1.1 make/makefile的背景

  • 会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力
  • 一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作
  • makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。
  • make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make。可见,makefile都成为了一种在工程方面的编译方法。
  • make是一条命令,makefile是一个文件,两个搭配使用,完成项目自动化构建。

如果在Linux下编程需要频繁的编译和删除时,这会使我们的效率变得很低下,所以我们学习自动化构建代码


1.2 make/makefile简介

make是一条命令,makefile是一个文件!!!

makefile文件的内容需要我们自己编写,而make则是启动makefile的钥匙

让我们来简单创建编写一个makefile。
Linux基础——Linux开发工具(make/makefile,git),Linux,linux

Linux基础——Linux开发工具(make/makefile,git),Linux,linux

这就完成了一个简单的makefile文件,包含了编译和删除功能


我们用vim编写一下test.c
Linux基础——Linux开发工具(make/makefile,git),Linux,linux
在编写完成,保存退出后,我们实现自动化构建代码只要:

指令:make

Linux基础——Linux开发工具(make/makefile,git),Linux,linux
如果想执行删除功能,我们只要:

指令:make clean

Linux基础——Linux开发工具(make/makefile,git),Linux,linux


那为什么形成可执行程序可以直接用make,但是删除不行呢?
在上面编写的Makefile中

指令:makemake mytest执行后的结果是一样的

Linux基础——Linux开发工具(make/makefile,git),Linux,linux

因为直接使用make时,会从上到下扫描makefile文件,扫描到第一个目标文件,就会执行它,所以makefile文件中的第一个指令是可以直接使用make执行,但是注意后面的指令,make后面必须要跟特定的指令

例如:
Linux基础——Linux开发工具(make/makefile,git),Linux,linux
如果我们这样编写Makefile那直接使用make将会怎么执行
Linux基础——Linux开发工具(make/makefile,git),Linux,linux
此时,make的功能将不再是生成可执行程序


1.3 伪目标

我们来看以下代码
Linux基础——Linux开发工具(make/makefile,git),Linux,linux
发现clean是被.PHONY修饰的,而.PHONY是将clean指令修饰成了伪目标。


伪目标又是什么呢?

当我们短时间内多次make时:
Linux基础——Linux开发工具(make/makefile,git),Linux,linux

我们只有第一次使用make时,程序执行了,但是当我们使用.PHONY修饰的clean时,每一次都可以成功执行

因此我们可以知道:

  • 伪目标是总是被执行的
  • make和makefile总是不让重新编译代码

1.4 文件的三个属性

我们先了解以下系统为什么要在第二次make的时候将我们的请求给拒绝:

  • 从效率上来看:文件在第二次make的时候并没有被修改,所以系统为了提高效率而拒绝make

系统怎么知道我们的文件是否进行了修改?

通过一个文件修改的时间

  • 第一次的时候,一定是先有源文件,才有可执行文件
    源文件的修改时间<可执行文件的修改时间
  • 第二/n次的时候,我们对源文件做任何修改的时候
    源文件的修改时间>可执行文件的修改时间
  • 编译重新生成可执行

我们可以直接查看文件的属性:
指令:stat 文件名

stat指令既可以查看源文件属性,也可以查看可执行程序的属性
Linux基础——Linux开发工具(make/makefile,git),Linux,linux

我们总是说 文件 = 内容+属性

红框里面的三个属性都是表示文件的时间,但是每一个表示的含义都不一样,让我来简单介绍一下
Linux基础——Linux开发工具(make/makefile,git),Linux,linux

在每次做出对应操作之后相应时间都会改变

注意:access时间不是实时更新的
Linux基础——Linux开发工具(make/makefile,git),Linux,linux

因此系统通过时间的对比不让我们频繁的进行编译代码操作,而伪目标的作用就是强制执行指令


1.5 makefile的依赖关系

make/makefile兼具推导能力

比如:我们可以写下以下程序
Linux基础——Linux开发工具(make/makefile,git),Linux,linux
Linux基础——Linux开发工具(make/makefile,git),Linux,linux

可执行程序mytest的生成依赖.o文件但是此时没有.o文件
就会执行下一条指令,但是.o文件依赖的是.s文件,系统中此时没有.s文件
又需要往下继续寻找,在找到系统内包含的.c文件时,程序将会执行回去

以此可以验证make/makefile的推导能力


makefile中可以自定义变量
Linux基础——Linux开发工具(make/makefile,git),Linux,linux
在自定义变量时,我们需要使用$()将变量修饰。
Linux基础——Linux开发工具(make/makefile,git),Linux,linux
同样生成了可执行程序


makefile文件还可以进行简写

Makefile文件的简写方式:

  • $@:表示依赖关系中的目标文件(冒号左侧)
  • $^:表示依赖关系中的依赖文件列表(冒号右侧全部)

Linux基础——Linux开发工具(make/makefile,git),Linux,linux

$@表示:mytest
$^表示:test.c

如果不想指令打印在显示器上我们可以在对应行前面加:@
Linux基础——Linux开发工具(make/makefile,git),Linux,linux
Linux基础——Linux开发工具(make/makefile,git),Linux,linux
此时删除时的提示被隐藏


2. git的简单介绍以及使用

2.1 git的简单介绍

git是一种代码管理器,git程序与Linux系统的是一家人,因此Linux与gitee或GitHub之间有一定联系

首先我们需要在gitee上有一个远端仓库,创建完成后,在管理仓库里设置开源
Linux基础——Linux开发工具(make/makefile,git),Linux,linux
然后克隆复制地址
Linux基础——Linux开发工具(make/makefile,git),Linux,linux
再复制好链接之后,我们在Linux下输入指令:

指令:git clone 链接

Linux基础——Linux开发工具(make/makefile,git),Linux,linux
即可将远端仓库克隆到本地

完成之后我们可以在里面新建文件和目录
Linux基础——Linux开发工具(make/makefile,git),Linux,linux


2.1 git的三板斧

git add

我们在当前目录下直接输入:
指令:git add 文件名git add .

  • 如果指定文件那么就会将指定文件添加到本地仓库
  • 如果是后者那么会将此目录下所有文件添加到本地仓库

如果在多次添加后记不清本地仓库有哪些文件我们也可以查看:
指令:git status

Linux基础——Linux开发工具(make/makefile,git),Linux,linux
这样可以查看本地仓库有哪些文件


git commit

git commit 就是添加日志

在commit时一定要输入日志
指令: git commit -m "日志"

日志的填写不能随意,日志内容会随着文件一起提交到远端仓库。如果随意填写,在被别人查看时,难免会出现不好的一面。
Linux基础——Linux开发工具(make/makefile,git),Linux,linux
这样代表日志更新成功!

注意:在第一次使用commit时系统可能会让你输入邮箱和用户名密码。按照系统提示的操作就行


git push

git push就是将我们刚刚进行的操作从本地仓库推出送到远端仓库:
指令:git push

注意:刚刚进行的git add并没有将文件直接推送到远端仓库

Linux基础——Linux开发工具(make/makefile,git),Linux,linux
输入你自己的用户名和密码即可PUSH成功!

3. 总结

Linux基础——Linux开发工具(make/makefile,git),Linux,linux

Linux常用的开发工具我们就说到这里,Linux开发工具不仅仅只有这么一点,make/makefile我们也仅仅只做到了入门,做一下简单的介绍,目前阶段完全够用,Linux内容还有很多,希望我们能继续加油。
谢谢大家支持本篇到这里就结束了
Linux基础——Linux开发工具(make/makefile,git),Linux,linux文章来源地址https://www.toymoban.com/news/detail-860288.html

到了这里,关于Linux基础——Linux开发工具(make/makefile,git)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux开发工具Make/Makefile篇

    我们使用gcc/g++编译代码时,每次都要输入一长串的指令,对于单个文件或者文件较少的时候,我们还能接受,可是当文件较多的时候,我们再一个一个编译,就会比较麻烦。Linux中 make 命令加上 Makefile 文件搭配使用,就可以完成项目的自动化构建。 C代码 创建makefile文件 写入

    2024年02月12日
    浏览(31)
  • 【Linux】基础开发工具——make

    上一期分享了在Linux下编译源代码的两个工具,gcc和g++。每次编译源代码,都要输入一串很长的指令,这个过程显然是十分复杂,且容易出错的,尤其是在一些大型的项目中,源代码可能有多个,此时编译起来就会更费劲。为了解决上面的问题,今天就给大家分享一个,Linu

    2024年02月16日
    浏览(34)
  • Linux开发工具大全 - 软件包管理器yum | vim编辑器 | gcc/g++编译器 | 自动化构建工具Make/Makefile | gdb调试工具

    目录 Ⅰ.  Linux 软件包管理器 yum 一、yum 背景知识 二、yum 的基本使用 1、查看软件包 2、软件包名称构成 3、安装软件 4、卸载软件 Ⅱ.vim编辑器  一、认识vim 1、vim概念  2、模式及其切换  二、vim使用 1、vim的指令(重要)  命令模式 插入模式 底行模式 2、vim配置 Ⅲ.gcc/g++编

    2024年02月05日
    浏览(52)
  • 【Linux取经路】基础开发工具——make

    上一期分享了在Linux下编译源代码的两个工具,gcc和g++。每次编译源代码,都要输入一串很长的指令,这个过程显然是十分复杂,且容易出错的,尤其是在一些大型的项目中,源代码可能有多个,此时编译起来就会更费劲。为了解决上面的问题,今天就给大家分享一个,Linu

    2024年02月14日
    浏览(33)
  • Linux中的开发工具(yum,vim,gcc/g++,gdb,Makefile,git)

    yum(Yellow dog Updater,Modified)是Linux下非常常用的一种 包管理器 。主要应用在Fedora,RedHat,Centos等发行版上。 和手机上的软件商店类似,我们可以使用 yum 来下载各种我们想要的软件包。使用 yum 时必须联网。 yum 基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装

    2024年02月08日
    浏览(43)
  • [Linux 基础] make、Makefile自动化构建工具

    make是一个命令,Makefile是一个在当前目录下存在的一个具有特定格式的文本文件。 在VS编译器中,我们在编译执行代码的时候ctrl+f5就可以了,而在linux中我们需要使用gcc/g++ 配合选项并需要正确的格式才可以完成编译,这样是比较麻烦的,我们make与Makefile可以实现自动化构建

    2024年02月06日
    浏览(38)
  • [Linux 基础] make、Makefile自动化构建代码工具

    make是一个命令,Makefile是一个在当前目录下存在的一个具有特定格式的文本文件。 在VS编译器中,我们在编译执行代码的时候ctrl+f5就可以了,而在linux中我们需要使用gcc/g++ 配合选项并需要正确的格式才可以完成编译,这样是比较麻烦的,我们make与Makefile可以实现自动化构建

    2024年02月08日
    浏览(42)
  • Linux 开发工具vim、gcc/g++、makefile

    目录 Linux编辑器-vim 1. 基本概念 2. 基本操作 3. 正常模式命令集 4. 末行模式命令集 5. 其他操作 6. 简单vim配置 Linux编译器-gcc/g++ 1、基本概念  2、程序翻译的过程 3. gcc如何完成程序翻译 4、动静态库  Linux项目自动化构建工具-make/Makefile 1、背景 2、创建makefile 3、原理 5、项目清

    2024年03月11日
    浏览(63)
  • Linux项目自动化构建工具-make/Makefile以及git三板斧

    是否会写make/makefile,从侧面反映了一个程序员是否具备完成大型工程的能力。一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更

    2024年02月16日
    浏览(45)
  • Linux开发工具:yum、vim、gcc/g++、makefile

    在 Linux 下安装软件一共有三种方式: 源代码安装 有很多开源软件的源代码会被作者放在Github/Gitee 等网站上, 可以将这些源代码下载在本地. 通过直接在本地将这些源代码进行编译链接生成可执行程序 . 在嵌入式编程中, 经常用到交叉编译来处理不同平台的适配性. rpm包直接安装

    2024年01月19日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包