Linux基础环境开发工具(二)

目录

一、前言

在开发工具第一篇中我们介绍了yum,vim,gcc/g++编译器这几种工具,在这篇文章中,我们即将介绍剩余的几种常见的开发工具。

二、make和makefile工具

1.快速认识一下

make实质上是一个指令,makefile实质上是一个文本文件 。makefile的作用主要是为了实现自动化构建项目,进行指定描述如何对源代码进行编译和链接。

接下来我们看一下如何简单的使用一下

这个makefile的功能就是通过main.c和processbar.c两个源文件中的代码进行编译和链接,最终生成processbar这个可执行程序。

2.依赖关系和依赖方法

在上面这个例子中

powershell 复制代码
processbar:main.c processbar.c

就是依赖关系,也就是一个实体必须依赖于另一个实体才能实现功能,而其中的processbar是依赖对象,main.c和processbar.c则是依赖文件列表

powershell 复制代码
gcc -o $@ $^

这个则为依赖方法,必须通过依赖方法才能将依赖文件列表转换成依赖对象 。其中,我们可以关注到,其实所谓的依赖方法就是通过gcc或者g++编译器进行编译的过程。 其中$^,是指整个依赖文件列表,在需要有多个源文件同时转换成一个可执行程序的时候,我们可以便捷的使用这个符号。

此外,因为整个编译过程是分为预处理,编译,汇编,链接四个阶段,所以我们的依赖关系也就变得多种多样起来

这个例子就是先将.c文件转换成.o文件,然后将.o文件再转换成可执行程序。

3.执行原理

我们在讲述完makefile之后,再来进行makefile和make的联动,make就是对makefile中的指令进行执行,一般而言是从上到下 ,挨个进行执行,但同时也遵循显示依赖关系,即依赖的源文件会先被执行。

make的执行还有个特点,make形成可执行程序只编译最新更新的一次,通过对比acm时间

同时也存在一种不受时间限制的执行对象,就是伪目标,这种对象一般不受更新时间的限制,直接进行更新,一般都是一些不产生实质性文件的操作,因为频繁的产生文件会导致效率严重低下,像清理之类的操作会被设置成为伪目标。

三、Git工具

1.快速认识一下

git实际上就是管理文件的一个工具,也可以称为版本控制器。管理文件分为两种,一种是在本地端进行管理,另一种是在远端进行管理。git在可以管理本地和远端仓库的同时还可以允许其他人或者其他设备来访问这个仓库,进行团队协作,所以说git既可以当做客户端,又可以当做服务器

git的使用一般就是三板斧:

powershell 复制代码
git add .
git commit -m "备注"
git push

2.git的使用

在详细了解git的三板斧之前,我们先来熟悉几个概念。首先是工作区,xshell中的工作区其实就是正在进行编辑工作的目录 。其次,真正有效的存储是存储在本地仓库中,在远端仓库存储更多的是一种起到保险作用的备份。

powershell 复制代码
git add .//将工作区中没有存储到仓库里的文件全部存放在暂存区
git commit -m "备注"//将暂存区中的文件存储到本地仓库中
git push//和远端仓库进行同步

在push阶段还会让我们输入自己远端仓库的用户名和密码。
以上是主要的三板斧,接下来还有几个重要的指令

powershell 复制代码
git clone //将远端仓库复制到本地中
git status //查看工作区中的文件修改记录
git rm 文件 //对远端文件进行删除,同时也会在status中有记录

四、gdb工具

1.快速认识一下

调试我们已经不再陌生了,在代码量大一点的程序中,我们都要用的到调试,这个gdb就是调试工具。

2、类比Windows使用

我们知道,程序一般都是有两个模式,一个是debug模式,另一个是release模式,只有debug模式比较适合让程序员进行调试的。但是Linux默认的是release模式,所以我们需要手动调回debug模式 。只需要在makefile的依赖方法的最后加上一个-g即可。

创作不易,感谢阅读。

相关推荐
云樱梦海7 小时前
OpenClaw官方:OpenClaw Windows Node 实战(1.5K ★ 开源推荐)
windows·开源·github·openclaw
keyipatience8 小时前
25.Linux静态动态库全解析
linux·运维·服务器
ZPYZTech8 小时前
用 Wails + Go + Vue3 开发桌面软件,聊聊踩过的坑
后端
爱睡觉1118 小时前
在 Android 模拟器 Shell 下运行 ncnn 推理的性能排查记录
linux·shell
落羽的落羽8 小时前
【项目】JsonRpc框架——开发实现1(细节功能、字段定义、抽象层、具象层)
linux·服务器·网络·c++·人工智能·算法·机器学习
shixuzhimeng8 小时前
FTP服务器项目
linux·网络·ftp
Chris-zz9 小时前
Linux:线程概念与控制
linux·运维
深度学习04079 小时前
SVN 独立服务端部署与客户端使用指南(CentOS/Rocky 9.5 + Windows)
windows·svn
好家伙VCC9 小时前
区块链双向支付通道实战:从签名到结算
java·后端·区块链·asp.net
爱分享软件的学长9 小时前
Tiled Map Editor 1.12.1 官方版下载(夸克网盘+百度网盘,SHA256校验)
windows·开源软件·软件下载