Linux 开发工具


🎁个人主页: 工藤新一¹

🔍系列专栏: C++面向对象(类和对象篇)

🌟心中的天空之城,终会照亮我前方的路

🎉欢迎大家点赞👍评论📝收藏⭐文章


文章目录

Linux 开发工具

学习 Linux,重要的不是 Linux 的指令操作,而是对应操作背后的知识体系

一、Linux生态

Linux 中安装软件:

  • 源码安装
  • 软件包安装 --- rpm
  • 包管理器 yum(centos)apt/apt-get(ubuntu),进行软件/工具的安装

其中,程序(软件)彼此之间具有依赖性,各个软件之间互相交叉,相互引用,所以在使用软件包安装时,就极可能产生 "依赖缺失,版本兼容性" 等问题

为什么要有包管理器?


什么是包管理器?

  • 类似于手机上的应用商店
  • yum - Linux 上的应用商店

  • 生态



二、Linux编辑器 - vim使用

2.1编辑器 Vim

  • IDE例子(集成开发环境)

vi/vim 的区别简单点来说,它们都是多模式编辑器,不同的是 vimvi 的升级版本,它不仅兼容 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 问题





🌟 各位看官好我是工藤新一¹呀~

🌈 愿各位心中所想,终有所致!

相关推荐
赖small强15 分钟前
【Linux驱动开发】Linux SDIO 底层原理与实现细节详解
linux·驱动开发·sdio
晨非辰18 分钟前
【数据结构初阶系列】归并排序全透视:从算法原理全分析到源码实战应用
运维·c语言·数据结构·c++·人工智能·python·深度学习
llxxyy卢2 小时前
通关upload-labs(14-21)加分析源码
linux·运维·服务器
JosieBook3 小时前
【Rust】基于Rust 设计开发nginx运行日志高效分析工具
服务器·网络·rust
e***98574 小时前
Nginx搭建负载均衡
运维·nginx·负载均衡
电话交换机IPPBX-3CX5 小时前
电话交换机IPPBX-3CX的呼叫记录导出
运维·服务器·网络
松涛和鸣5 小时前
11.C 语言学习:递归、宏定义、预处理、汉诺塔、Fibonacci 等
linux·c语言·开发语言·学习·算法·排序算法
C-DHEnry6 小时前
Linux 不小心挂载错磁盘导致无法启动系统咋办
linux·运维·服务器·雨云
JosieBook7 小时前
【若依框架】若依前后端分离项目怎么部署到服务器?
运维·服务器
q***7487 小时前
Nginx环境安装
运维·nginx