🎁个人主页:工藤新一¹
🔍系列专栏:C++面向对象(类和对象篇)
🌟心中的天空之城,终会照亮我前方的路
🎉欢迎大家点赞👍评论📝收藏⭐文章
文章目录
Linux 开发工具
学习 Linux,重要的不是 Linux 的指令操作,而是对应操作背后的知识体系
一、Linux生态
Linux 中安装软件:
- 源码安装
- 软件包安装 —
rpm
- 包管理器
yum(centos)
,apt/apt-get(ubuntu)
,进行软件/工具的安装
其中,程序(软件)彼此之间具有依赖性,各个软件之间互相交叉,相互引用,所以在使用软件包安装时,就极可能产生 “依赖缺失,版本兼容性” 等问题
为什么要有包管理器?
什么是包管理器?
- 类似于手机上的应用商店
yum - Linux
上的应用商店
- 生态
二、Linux编辑器 - vim使用
2.1编辑器 Vim
- IDE例子(集成开发环境)
vi/vim
的区别简单点来说,它们都是多模式编辑器,不同的是 vim
是 vi
的升级版本,它不仅兼容 vi
的所 有指令,⽽且还有⼀些新的特性在⾥⾯。例如语法加亮,可视化操作不仅可以在终端运⾏,也可以运⾏于 window、macos、windows
- 退出:Shift + : q
- ZZ(大写连续)
- 命令模式:采用快捷命令的方式,对文本内容进行编辑的方式
2.2vim配置
三、Linux编辑器 - gcc/g++使用
3.1背景知识
- 深究中间过程(显性呈现编译过程)
1、预处理(进行宏替换)
2、编译(生成汇编)
3、汇编(生成机器可识别代码)
4、连接(生成可执行文件或库文件)
- gcc 需要找到 .o 文件,将其形成可执行程序
3.2如何理解条件编译?
四、动、静态链接库
4.1概念
- 动态链接库又称共享库,
共享库缺点:被多个程序共享,一旦缺失,会导致所有使用共享库的程序,无法执行!
- 静态链接:将程序中的库方法,拷贝给我们自己, 静态库只有在链接的时候有用,一旦形成可执行程序,静态库可以不再需要
动静态库对比:
1、动态库形成的可执行程序体积一定很小
2、可执行程序对静态库的依赖度很小,而动态库不能缺失
3、程序运行,需要加载到内存,静态链接会导致内存中出现大量的重复代码(重复代码就是对内存资源的浪费)
4、动态链接保存的只是所调用方法的地址,这意味着调用方法都需要去对应的动态库中执行,比较节省内存和磁盘资源
4.2 gcc/g++ 的验证工作
- gcc
- g++
4.3浅识动态库
五、相关问题
5.1解决 sudo 问题
🌟 各位看官好,我是工藤新一¹呀~
🌈 愿各位心中所想,终有所致!