【学习笔记之Linux】工具之make/Makefile与git

简介: 【学习笔记之Linux】工具之make/Makefile与git

make/Makefile:

背景知识:

一个工程中的源文件不计数,按类型、功能、模块分别放在若干个目录中,Makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,那些文件需要重新编译等,可以说Makefile关系到了整个工程的编译规则,因此会不会写Makefile,能不能写好Makefile,说明了一个程序员完成大型工程的能力。

 Makefile带个程序员的好处就是自动化编译,只要写好Makefile,整个项目工程就能够完全自动编译,大大提高软件的开发效率。

Makefile介绍:

make是一个命令,Makefile是一个文件,两者搭配使用,就能实现项目自动化构建。通过touch先创建一个名为Makefile的文件,然后在Makefile文件中编写内容,编写完成后就可以在对应的目录下执行make命令。make会自动在目录下查找Makefile文件。

 Makefile更像是一个脚本语言,它的语法与编程语言是有区别的。Makefile实际上是一个很大的很深的技术点,这篇文章只是简单的介绍一下,如果想要深入学习可以看陈皓大佬的文章。刚学的话没必要马上就专研的很深。

Makefile规则:

  Makefile主要的规则是依赖关系和依赖方法。

target ...:prerequisites ...
  command
  ...
  ...


target是目标文件,执行make命令生成的文件名就是target文件的名字;

 prerequisites是生成target文件所需要的文件或者目标,他们之间是依赖关系,target依赖prerequisites生成,一个目标文件可以依赖多个文件生成;

 command是make需要执行的命令,可以是任何的shell命令,这就是与之对应的依赖方法。

实例:

  这里我已经写好Makefile文件和对应的C文件,之后会贴源码。

db7a79e984c64f9dbb38af0a445cdd98.png

//main.c文件
#include "proc.h"
int main()
{                                                                                                                                                         
    process();
    return 0;
}
//proc.c文件
#include "proc.h" 
#define SIZE 52
#define STYLE '='
#define ARR '>'
void process()
{
   const char *lable = "|/-\\";
   char bar[SIZE];
   memset(bar, '\0', sizeof(bar));
   int i = 0;
   while( i <= 50 )
   {
     printf("[%-50s][%d%%][%c]\r", bar, i * 2, lable[i%4]);
     fflush(stdout);
     bar[i++] = STYLE;
     if(i != 50)
     bar[i] = ARR;
     usleep(100000);
   }
   printf("\n");
}
//proc.h文件
#pragma once  
#include <stdio.h>
#include <string.h>
#include <unistd.h>
extern void process();
myprocess:main.c proc.c                                                                                                                                   
   gcc -o myprocess main.c proc.c
.PHONY:clean
clean:
   rm -f myprocess

.PHONY表示clean是一个伪目标,为目标不是一个文件,只是一个标签,所以make命令无法生成它的依赖关系和决定他是否要执行,需要我们显示地指明这个目标才能让其生效。伪目标取名不能和文件名重名,不然失去意义了。

d2bb73c09d2b4e4c9b671067a93d9a4d.png

git:


在Linux中,git需要自己进行下载,yum install git,就可以安装git了,如果是普通用户需要sudo提权,或者换到root用户安装。

 先建好远端仓库,然后克隆就行了,git clone url(对应仓库的链接)。

 然后就是git三板斧,最常用的添加、提交、推送。添加:git add 添加内容,将修改内容添加到缓存区;提交git commit -m “对提交内容进行描述”,把修改内容提交到本地仓库;推送:git push,把已经提交到本地仓库的内容推送到远端仓库。

 没有进行过全局配置,每次推送都会需要输入邮箱和密码。

8a6ce4812b2745d39b8f147daad87fcc.png

目录
相关文章
|
13天前
|
监控 Unix Linux
Linux操作系统调优相关工具(四)查看Network运行状态 和系统整体运行状态
Linux操作系统调优相关工具(四)查看Network运行状态 和系统整体运行状态
28 0
|
14天前
|
数据可视化 开发工具 C#
.NET开源、免费、跨平台的Git可视化管理工具
俗话说得好“工欲善其事,必先利其器”,合理的选择和使用可视化的管理工具可以降低技术入门和使用的门槛。今天大姚给大家分享一款.NET Avalonia开源、免费、跨平台、快速的Git可视化管理工具:SourceGit。
|
20天前
|
存储 前端开发 Linux
Linux系统之部署ToDoList任务管理工具
【4月更文挑战第1天】Linux系统之部署ToDoList任务管理工具
63 1
|
22天前
|
存储 传感器 运维
linux系统资源统计工具
【4月更文挑战第1天】Linux系统监控工具如dstat、htop、glances、vmstat、top、iostat、mpstat、sar和atop,用于跟踪CPU、内存、磁盘I/O、网络和进程性能。这些工具提供实时、交互式和历史数据分析,助力管理员优化系统性能和故障排查。例如,dstat是vmstat等工具的增强版,htop提供彩色界面的进程管理,而atop则结合了多种功能并记录历史数据。
28 5
linux系统资源统计工具
|
27天前
|
算法 数据可视化 Linux
Linux内核编译:深入理解`make menuconfig`命令
Linux内核编译:深入理解`make menuconfig`命令
32 0
|
13天前
|
Linux
Linux操作系统调优相关工具(三)查看IO运行状态相关工具 查看哪个磁盘或分区最繁忙?
Linux操作系统调优相关工具(三)查看IO运行状态相关工具 查看哪个磁盘或分区最繁忙?
21 0
|
19天前
|
资源调度 JavaScript 安全
Linux系统之部署web-check网站分析工具
【4月更文挑战第3天】Linux系统之部署web-check网站分析工具
64 9
|
20天前
|
运维 监控 Linux
不是所有的Linux工具都会让人惊叹,但这个绝对让你叫绝
【4月更文挑战第3天】不是所有的Linux工具都会让人惊叹,但这个绝对让你叫绝
31 0
不是所有的Linux工具都会让人惊叹,但这个绝对让你叫绝
|
25天前
|
开发工具 git
Git版本控制工具详解(三)
Git版本控制工具详解
35 0
|
29天前
|
缓存 Linux iOS开发
【C/C++ 集成内存调试、内存泄漏检测和性能分析的工具 Valgrind 】Linux 下 Valgrind 工具的全面使用指南
【C/C++ 集成内存调试、内存泄漏检测和性能分析的工具 Valgrind 】Linux 下 Valgrind 工具的全面使用指南
64 1