刘俊凯 发表于 2024-6-27 02:57:28

Linux 开发工具与众所周知

https://img-blog.csdnimg.cn/direct/f4d00d4392e1447e950b3047872b47e4.jpeg#pic_center   各位大佬好 ,这里是阿川的博客 , 祝您变得更强https://img-blog.csdnimg.cn/direct/40032ab50e08418dba8d1a9ac2ba5d2f.png 个人主页:在线OJ的阿川
大佬的支持和鼓励,将是我成长路上最大的动力 https://img-blog.csdnimg.cn/direct/2d2c9c60a4ec4d23ba1874524ec05a14.png
阿川水平有限,如有错误,接待大佬指正 https://img-blog.csdnimg.cn/direct/8d0f257b2b1f469db9b6b77641cdacfc.png
https://img-blog.csdnimg.cn/direct/c2816a680b8e4b87929a1b8881bd7f54.gif#pic_center
https://img-blog.csdnimg.cn/direct/6d4f0a41dd30459983b429c2eaaed55c.gif#pic_center
   上篇博文
Linux权限
Linux生态与工具


超级权限

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


[*]使用sudo指令,需要将该用户添加至信托白名单中
https://img-blog.csdnimg.cn/fc4c7a1b1a424869bd11dbad98f86893.jpg#pic_center


[*]信托白名单
https://img-blog.csdnimg.cn/922eff253c8f48ddb5023c6f3a60855b.jpg#pic_center
https://img-blog.csdnimg.cn/36dc4bc1f38f4b1a842abc5069666fc8.jpg#pic_center
https://img-blog.csdnimg.cn/c2761776d185436cb2a9ffab0e8b5798.jpg#pic_center
https://img-blog.csdnimg.cn/a33b934c9037460db33ad8f612b7f740.jpg#pic_center
编译器

编译器——gcc/g++使用
gcc重要编译点c文件
g++ 可以编译点c文件,也可以编译点cpp文件,但 发起cpp


[*]经过编译器处置惩罚之后,会生成可实行步调
https://img-blog.csdnimg.cn/8252f90528e543b795af1fd5885cf196.jpg#pic_center
https://img-blog.csdnimg.cn/e3a091596a2d43a6b7379e4e24807280.jpg
引入配景

1.预处置惩罚


[*]去解释
[*]头文件睁开
[*]宏更换
https://img-blog.csdnimg.cn/999c363331554fd38b30a60db7391978.jpg#pic_center
https://img-blog.csdnimg.cn/f267915d0c1949f3a40f819214bd58e5.jpg#pic_center
   注意:预处置惩罚阶段能进行头文件睁开
则阐明 头文件中的代码
已经拷贝在了操纵系统中
其实无论Visual Studio Installer、Linux、Windows等等这些平台
之所以可以或许运行编译型语言,是因为在安装该编译型语言时,就已经安装了相应的开发包,开发包中有所对应的头文件和库文件。
    头文件(.h)提供方法的声明,库文件 提供方法的实现,加自己写的代码
就即是自己的软件.
    库其实就是把源文件(.c)经过肯定的翻译,然后打包,只给你提供一个文件即可,不消给你提供太多的源文件,可以到达隐蔽源文件的目标.


[*] 库分为两种类型

https://img-blog.csdnimg.cn/164f8f3dcc2e4ba2b130a35157881de2.jpg#pic_center
https://img-blog.csdnimg.cn/09301506d2ea4a799eb6f3a211faca59.jpg#pic_center


[*] 动态库


[*]在实行代码
的过程中,若遇见无法实行的,则跳转到库中实行,实行完之后,回到 自己的代码
中向下继续实行,全部访问者都能调用该库,故动态库又称 共享库。

https://img-blog.csdnimg.cn/b20e3cc6aac54f56b9ca1055e088f9c9.jpg#pic_center


[*] 静态库:


[*]实行代码
前,先将 库中的文件拷贝到本地可实行步调中,不存在说实行代码
中遇见无法实行的去跳转到库中去探求。该库称为静态库。

[*]静态库需要先安装:


https://img-blog.csdnimg.cn/5b43be5c33b24bb7ad45b3f9794f9aa6.jpg#pic_center


[*] 动态库和静态库区别:


[*]动态库因为是共享库,有用的节省资源,但动态库一旦缺失,导致各个步调都无法运行
静态库 不依赖库,步调可以独立运行,但体积大比较斲丧资源

[*] 条件编译

[*]根据差异的编译条件,裁剪代码

https://img-blog.csdnimg.cn/1f2d93ac4bbb41fa98c59f33f4ede328.jpg#pic_center
https://img-blog.csdnimg.cn/6e9389eeb2b14b47ab91c55ecbd49bd1.jpg#pic_center
   

[*]拓展
https://img-blog.csdnimg.cn/4ca7b981514b4a3f8a9388098e6b1e10.jpg#pic_center

2.编译


[*]生成可重定位目标二进制文件,简称目标文件
3.汇编


[*]生成机器可辨认代码


[*]生成可实行二进制步调

https://img-blog.csdnimg.cn/f9cbdb110f464d348f388ed2e78ad86c.jpg#pic_center
   可实行步调形成的时候,不是无序的二进制构成,而有自己的格式–ELF格式
4.链接


[*]将可重定位目标二进制文件和标准库链接形成可实行步调

[*]点o文件和库如何毗连
[*]动态链接
与动态库进行毗连(默认)
[*]静态链接
将静态库的文件拷贝到本地,进行毗连
https://img-blog.csdnimg.cn/ca85016b82f345498969e1f18ee002d4.jpg#pic_center
[*]现实中 静态和动态链接是混合的。


[*]查看链接方式
https://img-blog.csdnimg.cn/d0e632b6d6e84fce8922f9074cfc5b76.jpg#pic_center#pic_center
概括

https://img-blog.csdnimg.cn/e2a9791b4b0d4877acea1ffecbf23c69.jpg
发行版本

可实行步调发行版本


[*]debug

[*]可以被追踪调试

[*]此中添加了的debug信息


https://img-blog.csdnimg.cn/de6e6f06cd294e1a98510e3e6b5e4f23.jpg#pic_center


[*]release(默认)

[*]不可被追踪调试

主动化构建工具

主动化构建和清理


[*]make 主动化的指令
[*]makefile or Makefile 当前目次下的文件

[*]需要先创建一个makefile文件,在makefile文件中添加一些指令,从而用 make指令进行主动化构建和清理
https://img-blog.csdnimg.cn/4038288b39694056a583dd11ad2533c9.jpg#pic_center
https://img-blog.csdnimg.cn/6a102ee63a144bee899b8a61e6ac22dd.jpg#pic_center
https://img-blog.csdnimg.cn/6a53d4de1e974eaa892c54bb53b520d0.jpg#pic_center
[*]之后就可以在控制台中输入make主动化指令了

https://img-blog.csdnimg.cn/7f7dc5f4500d41329071501cfd6bb920.jpg#pic_center


[*] 修改Tab键的默认设置

https://img-blog.csdnimg.cn/f27c1f45481646728530cd9075ff4a97.jpg#pic_center


[*] 代码

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

拓展学习

若对自己要求高点,想要进行拓展学习,这里保举两本书
步调员的自我修养


[*]关于编译的深入讲解
https://img-blog.csdnimg.cn/direct/2fe56245cce344df9e35207547d05058.png
深入明白计算机系统


[*]不太发起新手小白去看
https://img-blog.csdnimg.cn/direct/27623e024f2f4ba6a1ecf86bf212fcd7.png
好的,到此为止啦,祝您变得更强
https://img-blog.csdnimg.cn/direct/561d72d1e63e48779b22cf3f98163c60.gif#pic_center
道阻且长 行则将至 个人主页:在线OJ的阿川https://img-blog.csdnimg.cn/direct/f4d00d4392e1447e950b3047872b47e4.jpeg#pic_center大佬的支持和鼓励,将是我成长路上最大的动力 https://img-blog.csdnimg.cn/direct/ee7f6ecc4525423aa3d53d1fb3b13149.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Linux 开发工具与众所周知