Linux基础开发工具

目录

基础开发工具

包管理器

yum

apt

vim编辑器

gcc/g++编译器

自动化构建

make

Makefile/makefile

Git

调试器------gdb/cgdb


只有认知的突破 💫才能带来真正的成长 💫编程技术的学习 💫没有捷径 💫一起加油💫

🍁感谢各位的观看 🍁欢迎大家留言 🍁咱们一起加油 🍁努力成为更好的自己🍁

基础开发工具

包管理器

yum

作用:适用于Sentos系统的"软件商店"。

  • 下载软件:对于root用户------yum install -y +目标软件。对于普通用户------sudo yum install -y +目标软件。

  • 卸载软件:对于root用户------yum remove -y +目标软件。对于普通用户------sudo yum remove -y +目标软件。

apt

作用:适用于Ubuntu系统的"软件商店"。

  • 下载软件:对于root用户------apt install -y +目标软件。对于普通用户------sudo apt install -y +目标软件。

  • 卸载软件:对于root用户------apt remove -y +目标软件。对于普通用户------sudo apt remove -y +目标软件

vim编辑器

作用:是一个写代码的编辑器。用法:vim + 目标文件。

  • 命令模式

  • 插入模式

  • 底行模式

三者之间的关系,如下图所示。

gcc/g++编译器

作用:用来编译代码的工具。gcc只编译C语言,g++既可以编译C语言,也可以编译C++语言。

编译代码的指令:gcc/g++ -o 目标文件 源文件。

预处理,编译,汇编和链接的指令如下:

  • 预处理:去掉注释,条件编译,展开头文件,宏替换。指令:gcc -E ,生成.i文件。

  • 编译:生成汇编代码。指令:gcc -S,生成.s文件。

  • 汇编:把汇编代码生成二进制代码。指令:gcc -c,生成.o文件。

  • 链接:链接所有的.o文件和相关的库文件。指令:gcc,生成.exe文件。

自动化构建

make

make是一条指令,它是用来自动化构建项目的一个工具,自动化编译和链接等。它的自动化构建依赖Makefile/makefile配置文件。

#指令如下 make Makefile/makefile

Makefile/makefile

这俩是配置文件,至于名字是不区分大小写的。对你的项目,进行自动化构建流程配置。总结:make是一个自动化构建的工具,makefile是这个自动化构建所需的配置,只有make和makefile结合,才能完成整体的自动化构建。

对于makefile里面常用的配置解释。

复制代码
BIN=proc.exe # 定义变量 
CC=gcc 
SRC=$(wildcard *.c) # 或者使⽤ wildcard 函数,获取当前所有.c⽂件名 
OBJ=$(SRC:.c=.o) # 将SRC的所有同名.c 替换 成为.o 形成⽬标⽂件列表 
LFLAGS=-o # 链接选项 
FLAGS=-c # 编译选项 
RM=rm -f # 引⼊命令 

$(BIN):$(OBJ) 
    @$(CC) $(LFLAGS) $@ $^ # $@:代表⽬标⽂件名。 $^: 代表依赖⽂件列表 
    @echo "linking ... $^ to $@" 
    
%.o:%.c # %.c 展开当前⽬录下所有的.c。 %.o: 同时展开同名.o 
    @$(CC) $(FLAGS) $< # %<: 对展开的依赖.c⽂件,⼀个⼀个的交给gcc。 
    @echo "compling ... $< to $@" # @:不回显命令 
    
.PHONY:clean 
clean: 
    $(RM) $(OBJ) $(BIN) # $(RM): 替换,⽤变量内容替换它 
  
.PHONY:test 
test: 
    @echo $(SRC) 
    @echo $(OBJ)

Git

是一个文件版本控制器,它具有网络的功能,能把代码给托管到代码云平台上。常用的指令如下:

  • git add "目标文件"。把工作区的代码,给加载到git的暂存区。

  • git commit -m "提交信息"。把暂存区的代码,加载到git本地仓库里面。

  • git push。把git本地仓库的代码。提交到远程仓库里面。

调试器------gdb/cgdb

这俩就是调试代码用的,这俩的使用指令都是一样的。对于gdb,进入代码调试的时候,它不会直接显示代码。对于cgdb,进入代码调试的时候,它会直接显示代码。所有,我们用cgdb更多一些。这里就着重介绍一下这个调试器。

注意:gcc/g++编译的代码默认是release版本的,在进行调试代码之前,需要被调试的代码必须是Debug模式编译的,所以需要在编译代码指令的后面加上-g

代码调试常用的指令如下所示:

复制代码
cgdb + 目标文件     #进入代码调试阶段
break/b + 行号     #在某行打上调试断点
break/b + 函数名    #在函数开头打上断点
r/run              #运行程序,开始调试
info break/b        #查看当前所有断点
delete/d + 断点的序号 #删除指定的断点
display + 变量名      #追踪并显示对应的变量
until + ⾏号         #执⾏到指定⾏号
quit                #退出cgdb调试
set var 变量=值   #修改变量的值  set var i=10
n/next      #逐过程
s/step      #逐语句
相关推荐
tedcloud1239 分钟前
OpenLogi 怎么搭建?用 Rust 打造一个轻量的 Logitech 外设管理工具
linux·运维·服务器·开发语言·后端·rust·开源
AAA代码批发商14 分钟前
Days 39 Linux C 开发之 SQLite 数据库完整学习笔记
linux·c语言·数据库
Wang's Blog1 小时前
Vibe Coding一人即团队系列54:云服务器 Node.js 与 MySQL 9 环境搭建及配置指南
服务器·人工智能·mysql·node.js
额额额对了1 小时前
Linux 数据库开发实战:使用 C 语言与 SQLite3 构建轻量级终端词典
linux·数据库·oracle
爱笑鱼1 小时前
Android 系统启动机制(六):Zygote 创建 App 为什么走 Socket?哪些是源码事实,哪些是架构解释?
android·linux
2601_962299881 小时前
Linux下运行Python脚本
linux·python·ubuntu·脚本·命令
Zenova EdgeOS1 小时前
Linux eBPF 工业边缘性能观测实战
linux·服务器·网络
skywalk81632 小时前
通过下载Ubuntu ova文件在Virtual Box快速安装ubuntu
linux·运维·ubuntu·virtualbox
wuminyu2 小时前
JVM锁膨胀与Futex源码解析
java·linux·c语言·jvm·c++
happymade2 小时前
7000 台网络设备批量纳管 & 自动拓扑生成实战——MSRM3 完整操作流程与关键要点复盘
运维·服务器·网络·zabbix·grafana·msrm3