Linux 开发工具与众所周知

在线OJ的阿川 2024-06-10 15:07:10 阅读 95

各位大佬好 ,这里是阿川的博客 , 祝您变得更强

在这里插入图片描述

个人主页:在线OJ的阿川

大佬的支持和鼓励,将是我成长路上最大的动力

在这里插入图片描述

阿川水平有限,如有错误,欢迎大佬指正

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

上篇博文

Linux权限

Linux生态与工具

目录

超级权限编译器引入背景概括 发行版本自动化构建工具拓展学习

超级权限

在Linux当中有些权限 需要root账户普通用户可以短暂的使用root账户所拥有的权限,需要使用sudo指令

使用sudo指令,需要将该用户添加至信任白名单中

在这里插入图片描述

信任白名单

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

编译器

编译器——gcc/g++使用

gcc主要编译点c文件

g++ 可以编译点c文件,也可以编译点cpp文件,但 建议cpp

经过编译器处理之后,会生成可执行程序

在这里插入图片描述

在这里插入图片描述

引入背景

1.预处理

注释文件展开宏替换

在这里插入图片描述

在这里插入图片描述

注意:预处理阶段能进行头文件展开

说明 头文件中的代码已经拷贝在了操作系统中

其实无论Visual Studio Installer、Linux、Windows等等这些平台

之所以能够运行编译型语言,是因为在安装该编译型语言时,就已经安装了相应的开发包,开发包中有所对应的头文件和库文件。

头文件(.h)提供方法的声明库文件 提供方法的实现加自己写的代码就等于自己的软件.

其实就是把源文件(.c)经过一定的翻译然后打包只给你提供一个文件即可,不用给你提供太多的源文件,可以达到隐藏源文件的目的.

库分为两种类型

在这里插入图片描述

在这里插入图片描述

动态库执行代码的过程中,若遇见无法执行的,则跳转到库中执行,执行完之后回到 自己的代码中向下继续执行所有访问者都能调用该库,故动态库又称 共享库

在这里插入图片描述

静态库: 执行代码先将 库中文件拷贝到本地可执行程序中不存在说执行代码中遇见无法执行的去跳转到库中去寻找该库称为静态库。 静态库需要先安装

在这里插入图片描述

动态库和静态库区别: 动态库因为是共享库,有效的节省资源,但动态库一旦缺失导致各个程序都无法运行

静态库 不依赖库,程序可以独立运行,但体积大比较消耗资源

条件编译

根据不同的编译条件裁剪代码

在这里插入图片描述

在这里插入图片描述

拓展

在这里插入图片描述

2.编译

生成可重定位目标二进制文件,简称目标文件

3.汇编

生成机器可识别代码 生成可执行二进制程序

在这里插入图片描述

可执行程序形成的时候,不是无序的二进制构成,而有自己的格式–ELF格式

4.链接

可重定位目标二进制文件标准库链接形成可执行程序 点o文件和库如何连接 动态链接

动态库进行连接默认静态链接

静态库的文件拷贝到本地,进行连接

在这里插入图片描述

实际中 静态和动态链接是混合的查看链接方式

在这里插入图片描述

概括

在这里插入图片描述

发行版本

可执行程序发行版本

debug 可以被追踪调试 其中添加了的debug信息

在这里插入图片描述

release(默认) 不可被追踪调试

自动化构建工具

自动化构建和清理

make 自动化的指令makefile or Makefile 当前目录下的文件 需要先创建一个makefile文件,在makefile文件中添加一些指令从而用 make指令进行自动化构建和清理

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

之后就可以在控制台中输入make自动化指令

在这里插入图片描述

修改Tab键的默认设置

在这里插入图片描述

代码

set tabstop=4 set softtabstop=4 set shiftwidth=4 set expandtab

拓展学习

若对自己要求高点,想要进行拓展学习,这里推荐两本书

程序员的自我修养

关于编译的深入讲解

在这里插入图片描述

深入理解计算机系统

不太建议新手小白去看

在这里插入图片描述

好的,到此为止啦,祝您变得更强

在这里插入图片描述

道阻且长 行则将至

个人主页:在线OJ的阿川

大佬的支持和鼓励,将是我成长路上最大的动力

在这里插入图片描述



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。