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

🍁感谢各位的观看 🍁欢迎大家留言 🍁咱们一起加油 🍁努力成为更好的自己🍁
基础开发工具
包管理器
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 #逐语句