当前位置: 首页 > article >正文

Linux中的软硬链接和动静态库

硬链接

ln myfile.txt hard_file.link
264962 -rw-rw-r--  2 zhangsan zhangsan    0 Sep 30 03:16 hard_file.link
264962 -rw-rw-r--  2 zhangsan zhangsan    0 Sep 30 03:16 myfile.txt
273922 lrwxrwxrwx  1 zhangsan zhangsan   10 Sep 30 03:17 soft_file.link -> myfile.txt

 硬链接没有独立的iNode

建立硬链接,根本没有创建新文件,因为没有为硬链接分配独立的iNode,因为没有创建文件,所以,硬链接没有自己的属性集合和内容集合,使用的是他人的iNode。

建立硬链接的本质:在指定路径下,新增文件名和iNode编号的映射关系

 只有当一个文件的硬链接数变为0时,才算真正被删除

./..均为硬链接

软链接

ln -s myfile.txt soft_file.link
264962 -rw-rw-r--  1 zhangsan zhangsan    0 Sep 30 03:16 myfile.txt
273922 lrwxrwxrwx  1 zhangsan zhangsan   10 Sep 30 03:17 soft_file.link -> myfile.txt

软链接有独立的iNode,可以被当做独立的文件看待。

软链接保存的是目标文件的路径。

软链接类似于快捷方式。

acm 

Access 最后访问时间 不是实时更新的

Modify 文件内容最后修改时间

Change 属性最后修改时间

内容修改后属性大概率也会发生变化

静态库与动态库

静态库(.a):程序在编译链接的时候把库的代码链接到可执行文件中。程序运行的时候将不再需要静态库

链接时静态库的代码会被加载到程序中,故静态库必须用加载到内存

动态库(.so):程序在运行的时候才去链接动态库的代码,多个程序共享使用库的代码。

生成静态库
[root@localhost linux]# ar -rc libmymath.a add.o sub.o 
ar是gnu归档工具,rc表示(replace and create)

生成动态库 

shared: 表示生成共享库格式

fPIC:产生位置无关码(position independent code)

库名规则:libxxx.so

ldd mymath

查看链接方式

动态库的加载:采用与位置无关码进行编址,在动态库中形成的函数以偏移量的形式保存其地址,链接时将偏移量链接到可执行程序中,加载时一旦动态库加载完成,并且动态库的起始地址确定

那么函数在地址空间中的位置即可确定。

gcc

-I

gcc -o mymath main.c -I ./mylib/include

通过-I指定头文件的位置

-L

通过-L指定库所在路径

gcc -o mymath main.c -I ./mylib/include -L ./mylib/lib

-l

通过-l指定库名称

gcc -o mymath main.c -I ./mylib/include -L ./mylib/lib -l mymath

提取库名称是需要去掉其前缀和后缀。


http://www.kler.cn/news/330709.html

相关文章:

  • 大模型压缩3种方式;模型大小的计算;知识蒸馏:利用教师的输入输出,训练调整学生的小模型
  • Linux 中的 Makefile 伪目标详解
  • 【Spring Boot 入门三】Spring Boot与数据库集成 - 构建数据驱动的应用
  • 版本控制-git
  • uniapp中检测应用更新的两种方式-升级中心之uni-upgrade-center-app
  • 产品经理的学习
  • 构建ID3决策树的算法代码 核心部分详细讲解
  • 掌握 C# 异常处理机制
  • STM32堆栈溢出Bug
  • 排序题目:翻转对
  • mac中文件夹怎么显示.git隐藏文件
  • Unraid的cache使用btrfs或zfs?
  • Python 读取与处理出入库 Excel 数据实战案例(HTML 网页展示)
  • 如何使用ssm实现基于web的网站的设计与实现+vue
  • 【有啥问啥】大型语言模型的涌现能力(Emergent Abilities):新一代AI的曙光
  • Android Camera2 与 Camera API技术探究和RAW数据采集
  • 深入理解 Solidity 修饰符(Modifier):功能、应用与最佳实践
  • 【springboot】整合沙箱支付
  • 亚马逊云乱扣费,被不知不觉扣钱真的好气呀
  • [linux] 磁盘清理相关