欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 名人名企 > Linux常见工具如yum、vim、gcc、gdb的基本使用,以及编译过程和动静态链接的区别

Linux常见工具如yum、vim、gcc、gdb的基本使用,以及编译过程和动静态链接的区别

2025/4/22 3:36:14 来源:https://blog.csdn.net/Kaisir777/article/details/147282257  浏览:    关键词:Linux常见工具如yum、vim、gcc、gdb的基本使用,以及编译过程和动静态链接的区别

目录

一、工具的本质

二、一些常用的工具

1.yum

2.vim

1)vim的三种基本模式:

2)vim的基本操作

①命令模式下的基本操作:

②插入模式:

③底行模式:

3)vim的配置:让他变得更好用

3.gcc/g++的使用

基本使用方法:

编译过程

动静态链接

4.gdb命令行调试

3)调试指令

​编辑

5.初识M/makefile

补充:系统是如何得知源文件是否未被修改的?文件属性——三个时间

总结



一、工具的本质

工具在本质上也是一种特殊的指令

二、一些常用的工具

1.yum

常用选项:
yum list | grep 软件名:搜安指定软件;

yum install 软件名:安装指定软件;

yum remove 软件名:卸载指定软件

提示:yum需要root权限,故一般处于root身份或者sudo安装

示例:安装sl小火车

①sudo yum install -y sl或则root身份下的yun install -y sl(-y即不要过多询问直接安装)

②sl(运行该软件)

如果安装成功,屏幕中会出现如下小火车。

不知道是普通用户还是root?可用whoami指令查看

2.vim

介绍:Linux下的一款功能强大的编辑器(功能很多的记事本……)

使用方法:vim 先打开的文件名

1)vim的三种基本模式:

①命令模式:默认打开vim进入后所处的模式;

注意:在vim中的操作须在输入法为英语环境下进行。

②底行模式:在命令模式下,按住shift + :即可进入底行模式

注意光标在哪

在底行模式输入q再Enter可退出vim。

③插入模式:在命令模式下按键盘上的i键进入,进入后屏幕左下角会显示“--INSERT--”字样

在插入模式输入内容后,保存须在底行模式输入w再Enter

三种模式的切换:

命令模式+i==插入模式,插入模式按esc(键盘左上角)可退回命令模式;

命令模式+shit+:是底行模式,底行模式按esc(键盘左上角)可退回命令模式;

插入模式不能直接切换到底行模式,反之亦然,需要命令模式做中介。

画的好丑,读者见谅

在底行模式输入!q再Enter可退出vim。

2)vim的基本操作

①命令模式下的基本操作:

        光标定位:

        文本编辑:

撤销:u

撤销撤销:ctrl + r

②插入模式:

按期望编写文件即可

③底行模式:

3)vim的配置:让他变得更好用

3.gcc/g++的使用

若系统未安装gcc或者g++先安装:sudo yum install -y gcc或sudo yum install -y g++

基本使用方法:

gcc 源文件 -o 可执行文件名;g++ 源文件 -o 可执行文件名。

①若有多个源文件则在gcc/g++后跟着列出即可,中间空格‘  ’隔开;

②-o:是为生成的可执行文件命名,若无-o则默认生成a.out

编译过程

从源文件到可执行文件经过了如下几个步骤:

①预处理:头文件展开,宏定义替换,去注释,条件编译;

②编译:将源文件编译为汇编语言;

③汇编:将②中汇编语言进一步翻译为二进制机器语言;

此时的二进制文件可以被机器执行吗?

答:不能,在我们的代码中只有函数的调用,如pringf、scanf等,没有他们的实现!!他们的实现在C标准库,还需要第五步链接!

④链接:将③中的二进制代码与库中代码合并链接最后形成可执行程序。

什么库?干嘛的?比如printf这个函数,我们在编写代码时只是调用了他,却并没有实现,他的实现在C标准库中,即头文件"stdio.h"

动静态链接

在编译过程中的第五步链接又分为动态链接和静态链接:

如上述生成的hello可执行程序,若用file指令:file hello,在弹出的信息中可看到Linux系统采用了动态链接方式(大多数系统都是默认动态链接

4.gdb命令行调试

首先应该明确的是:在不同的开发环境调试的方式是不同的,但调试的思路一定是一样的。

1)gdb的安装:sudo yum install -y gdb

2)在Linux中gcc/g++默认生成的是release版本,若想调试应该在编译时带上-g,如:

这里插个题外话:为什么会有release和debug之分?

3)调试指令

5.初识M/makefile

拿上述的hello程序写一个最简单的makefile(在vim中编写):

补充:系统是如何得知源文件是否未被修改的?文件属性——三个时间

使用stat指令:stat hello可查看hello的详细信息

其中有三个时间:

所以系统是如何得知源文件是否未被修改的呢?


总结

本篇文章主要介绍了yum、vim、gcc/g++以及gbd的基本使用方法,同时补充了程序的编译过程和动静态链接过程。笔者水平较浅薄,难免有疏忽大意的地方,若有错误还请读者指出!!

文章读完可否给笔者一个免费的赞呢,一个免费的点赞就能让笔者高兴很久哦。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词