【自我笔记之Linux】库文件、静态库以及动态库(共享库)

本文详细介绍了Linux下的EXT4文件系统结构,包括superblock、inode和block的作用,并对比了U盘常用的FAT32文件系统。同时,还讲解了静态库与动态库的区别及生成方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一般在Linux文件系统下是EXT4 --->索引式文件系统,U盘是FAT32--->链接式文件系统。

EXT4:

分区完成后,磁盘格式化时,将磁盘空间分成三部分:inode   block   superblock

superblock:存储整个文件系统的信息,包括inode和block的总量,使用量,剩余量

inode:   存储文件的属性信息,包括文件的权限  用户……   block的编号

block:  存储文件的真实内容

下图所示:

 

库文件:某些功能代码的集合

静态库:  中间文件的集合  windows(.lib)  linux(.dll)

链接阶段直接将库中的内容合并到最终的可执行文件中,生成的可执行文件最终执行时不依赖库文件。

动态库(共享库): 不可单独执行的可执行文件  windows(.a)  linux(.so)

链接阶段只在可执行文件中设置使用的库,运行时,由操作系统动态加载到内存上执行

静态库的生成:

1> gcc   -c   main.c  max.c   ---->  得到main.o   max.o

2>将目标文件归档

 ar  crv  libxxxx.a  main.o  max.o   ---->  libxxxx.a(静态库)

动态库的生成:

gcc  -shared -fPIC  -o libxxxxx.so  *.c

 

库的使用:gcc -o  main  main.c  -L路径  -l库名

 

补充一个知识点:

Linux上的文件类型:目录   普通   链接   管道   设备

链接文件:

软链接(ln   -s    源文件  链接文件):

符号链接 相当于windows的快捷方式

链接文件存储源文件的路径

软链接和源文件使用不同的inode结点

硬链接(ln   源文件   链接文件):

相当于源文件的别名

硬链接文件和源文件使用同一个inode结点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值