初学者必备技能:Makefile编写、Linux进度条和Git命令行操作

摘要:本篇博客将介绍初学者必备的三个技能:Makefile编写、Linux进度条和Git命令行操作。通过学习这些技能,你将能更高效地管理和开发项目。

 一、Linux项目自动化构建工具-make/Makefile

背景 :

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

1.什么是make?

make是一种常用的自动化构建工具,可以根据源文件之间的依赖关系,自动执行编译、链接等操作,生成最终的可执行文件或库文件。通过make,开发者可以避免手动编译的繁琐和容易出错的问题。

2、Makefile的基本结构

Makefile是make工具使用的配置文件,用于描述源文件之间的依赖关系和构建规则。一个基本的Makefile通常包含以下几个部分:

  1. 定义变量:可以在Makefile中定义变量,用于定义编译器、编译选项、源文件列表等。通过使用变量,可以方便地修改和管理项目的配置。

  2. 定义规则:规则是Makefile的核心内容,用于描述源文件之间的依赖关系和构建规则。规则通常由目标(target)、依赖(dependencies)和命令(command)三部分组成。

  3. 隐含规则:make工具提供了一些隐含规则,用于根据文件的后缀名推导出构建规则。例如,可通过".c"文件生成".o"文件的隐含规则。

  4. 伪目标:伪目标是一种特殊的目标,其名称不对应任何实际的文件。伪目标通常用于定义一些特殊操作或命令。例如,可以定义一个伪目标用于清理临时文件。

3、Makefile的示例

下面是一个简单的Makefile示例,用于编译一个由多个源文件组成的项目:

# 定义编译器和编译选项
CC = gcc
CFLAGS = -Wall -O2

# 定义源文件列表
SRCS = main.c utils.c

# 定义目标文件列表
OBJS = $(SRCS:.c=.o)

# 定义目标规则
target: $(OBJS)
	$(CC) $(CFLAGS) -o target $(OBJS)

# 定义依赖规则
$(OBJS): %.o: %.c
	$(CC) $(CFLAGS) -c $< -o $@

# 定义清理规则
.PHONY: clean
clean:
	rm -f target $(OBJS)

在上述示例中,我们首先定义了编译器和编译选项的变量,然后定义了源文件列表和目标文件列表。接下来,我们定义了目标规则、依赖规则和清理规则,分别用于描述项目的构建过程。

4、使用make进行项目构建

在配置好Makefile后,我们可以通过执行make命令来进行项目的构建。make会自动根据Makefile中的规则进行文件的编译、链接等操作,生成最终的可执行文件或库文件。

例如,我们可以通过执行以下命令来构建示例项目:

$ make

执行完以上命令后,make会根据Makefile中的规则,编译所有需要更新的源文件,并生成最终的可执行文件。

二、Linux第一个小程序-进度条

在Linux环境中,我们经常需要显示长时间运行的任务的进度条,以便用户可以了解任务的进展情况。以下是一个简单的Linux进度条示例:

#include <unistd.h>
#include <string.h>
int main()
{
 int i = 0;
 char bar[102];
 memset(bar, 0 ,sizeof(bar));
 const char *lable="|/-\\";
 while(i <= 100 ){
 printf("[%-100s][%d%%][%c]\r", bar, i, lable[i%4]);
 fflush(stdout);
 bar[i++] = '#';
 usleep(10000);
 }
 printf("\n");
 return 0;
}

 

三、使用 git 命令行

Git是一个分布式版本控制工具,它可以帮助我们管理和追踪项目的代码变化。以下是一些常用的Git命令行操作:

  •     git init:在当前目录初始化一个新的Git仓库。
  •     git add <file>:将文件添加到Git仓库中。
  •     git commit -m "<message>":提交代码变更,并添加提交信息。
  •     git push <remote> <branch>:将本地代码推送到远程仓库。
  •     git pull <remote> <branch>:从远程仓库拉取最新代码。
  •     git clone <repository>:克隆一个远程仓库到本地。

通过学习这些基本的Git命令行操作,你将能够将代码上传到Github上,并与他人协作开发项目。

总结:本篇博客介绍了初学者必备的三个技能:Makefile编写、Linux进度条和Git命令行操作。通过掌握这些技能,你将能够更高效地管理和开发项目。希望这篇博客能对你有所帮助!

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值