0


Linux 开发工具与众所周知


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

在这里插入图片描述 个人主页:在线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文件和库如何连接1. 动态链接动态库进行连接默认)2. 静态链接静态库的文件拷贝到本地,进行连接在这里插入图片描述3. 实际中****静态和动态链接是混合的
  • 查看链接方式

在这里插入图片描述

概括

在这里插入图片描述

发行版本

可执行程序发行版本

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

在这里插入图片描述

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

自动化构建工具

自动化构建和清理

  • make****自动化的指令
  • makefile or Makefile****当前目录下的文件- 需要先创建一个makefile文件,在makefile文件中添加一些指令从而用****make指令进行自动化构建和清理在这里插入图片描述在这里插入图片描述在这里插入图片描述- 之后就可以在控制台中输入make自动化指令

在这里插入图片描述

  • 修改Tab键的默认设置

在这里插入图片描述

  • 代码
set tabstop=4
   set softtabstop=4
   set shiftwidth=4
   set expandtab

拓展学习

若对自己要求高点,想要进行拓展学习,这里推荐两本书
程序员的自我修养

  • 关于编译的深入讲解在这里插入图片描述

深入理解计算机系统

  • 不太建议新手小白去看在这里插入图片描述 好的,到此为止啦,祝您变得更强在这里插入图片描述
    道阻且长 行则将至
    个人主页:在线OJ的阿川大佬的支持和鼓励,将是我成长路上最大的动力 在这里插入图片描述

本文转载自: https://blog.csdn.net/2301_81874719/article/details/139040861
版权归原作者 在线OJ的阿川 所有, 如有侵权,请联系我们删除。

“Linux 开发工具与众所周知”的评论:

还没有评论