LInux工具(2)

1.关于底行模式的一个设置

1.1设置行号

这个设置可以让我们在文本编辑器中书写的代码前显示行号标注。

LInux工具(2)

1.2取消行号

这个操作会恢复到默认设置,不显示每一行的行号。

LInux工具(2)

2.简单vim配置

2.1简单认识

在/etc/目录下,有一个名为vimrc的文件,这是系统的公共vim配置文件,对所有用户生效。然而,每个用户在自己的目录下可以设置私有的配置,不会影响其他人。要进行配置,我们需要先切换到root目录,然后使用cd ~命令到达相应目录。

执行#vim .vimrc#命令打开自己目录下的配置文件,进行相应的配置。

2.2配置选项

设置语法高亮#syntax on#

显示行号#set nu#

设置缩进格数为4#set shiftwidth=4#

这里提到的行号设置与前面介绍的行号显示有何不同?这里的配置会应用于新建的文件,而前面的命令只对当前文件生效。

配置完成后,按照三种模式之间的切换,直接保存退出即可,然后再次进入查看新效果。

2.3其他说明

cd ~表示进入/root目录。我们在进行配置时需要在/root目录下操作。当从普通用户切换回root时,默认位置是root中的zzy(因为切换前就在zzy目录下,切换后仍在/home/zzy目录下,这是普通用户的家目录,而不是root用户的家目录)。要直接切换到root的家目录,需要在切换命令中使用su – root(注意短杠和root之间有一个空格)。当然,也可以不加短杠,使用cd ~切换到家目录。

LInux工具(2)LInux工具(2)

3.库的引入

3.1背景知识

程序执行的环节包括预处理、编译、汇编和执行。预处理涉及宏替换、头文件展开和注释去除;编译生成程序的汇编指令;汇编将这些指令转换为机器可识别的指令;链接将库和目标文件连接起来,因为目标文件本身无法直接执行,需要与库连接才能执行。

3.2对应指令

展示了4组指令,分别对应上述四个过程。test.c是我们需要运行的程序,test.i是经过预处理后的文件,-E指令让预处理后停止。生成的预处理文件通常称为.i文件。

-S指令让.i文件经过编译后停止,生成的文件通常使用.s命名。-o指令用于指定生成文件的名称。

-c指令让编译后的文件经过汇编后停止,生成的文件通常是.o文件。gcc用于编译文件,vim用于查看每个步骤生成的文件内容。.o文件全称为可重定向目标二进制文件,简称目标文件。

LInux工具(2)

3.3相关介绍

c语言中的库是标准库,包括静态库和动态库。libc.so中的lib是前缀,.so是后缀,实际名称只有c,这是库的命名规则。

系统默认只安装动态库,不安装静态库。编译型语言的安装包会包含头文件和库文件,编译器才能识别,我们才能使用相关方法。库将源文件翻译打包,提供一个文件,隐藏源文件,增强代码安全性。

头文件提供方法声明,库文件实现方法,加上我们编写的代码,就可以形成可执行程序(软件)。库的作用是让我们站在巨人的肩膀上,减少重复工作。

3.4.o文件和库的链接

动态链接:动态库也称共享库,一旦动态库缺失,会影响多个程序的执行。动态库在程序执行到某步骤时,跳转到库中执行无法独立完成的步骤,因此动态库一旦消失,许多程序将无法执行。

静态链接:与动态链接不同,程序执行到无法独立完成的步骤时,会将静态库中的内容复制到程序中。即使静态库消失,程序执行也不会受影响,这是动态库和静态库的区别

3.5静态库的安装和测试

动态链接调用动态库,静态链接使用静态库,需相互匹配,但可以修改默认方式,需额外标注。然而,系统默认只有动态库,需要手动安装静态库。

C语言静态库:

LInux工具(2)

c++静态库:

LInux工具(2)

可以在云服务器上安装这两个静态库。如果不想使用动态库,可以在后面加上-Static标注,使用自己安装的静态库。

LInux工具(2)

通过ll指令可以看到静态库文件较大,因此通常不使用静态库,默认使用动态库即可。

LInux工具(2)

3.6动静态库对比

动态库称为共享库,有效节省资源,生成的可执行程序体积小,节省磁盘空间,加载到内存时节省内存,节省网络空间,但缺点是一旦动态库缺失,许多程序将无法执行。

静态库不依赖外部库,程序可以独立执行(因为库中的文件已复制到程序中),但体积大,消耗资源(内存、网络空间等)。

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享