linux 共享库为什么要建立那么多link
QT建立的共享库,输出的时候会有三个链接文件,有疑惑为什么要这么多文件呢?是什么规则考虑的?
可能这么做有好处,就是可以随时切换库的版本吧。
Linux下软链接的使用技巧 - 腾讯云开发者社区-腾讯云
统一设备文件名,增强应用程序可移植性
不同平台的嵌入式Linux下,可能设备文件名、GPIO编号不一样,比如有的平台下,串口设备名称为:ttySxx, 有的则是ttyAMAxx;这个产品的运行指示灯是gpio51控制,另一个产品是gpio32等。
所以不同平台的应用程序中要么加编译开关,宏定义来区分不同平台的设备文件名称,这样会导致代码臃肿,可读性查,不同平台需要不同编译开关,容易出错。
而使用软链接可以很好的解决这一问题
Linux下软链接和硬链接的区别
1)默认不带参数情况下,ln命令创建的是硬链接,带-s参数的ln命令创建的是软链接。 2)硬链接文件与源文件的inode节点号相同,而软链接文件的inode节点号与源文件不同。 3)ln命令不能对目录创建硬链接,但可以创建软链接,对目录的软链接会经常被用到。 4)删除软链接文件,对源文件及硬链接文件无任何影响; 5)删除文件的硬链接文件,对源文件及链接文件无任何影响; 6)删除链接文件的源文件,对硬链接无影响,会导致其软链接失效(红底白字闪烁状) 7)同时删除源文件及其硬链接文件,整个文件才会被真正的删除。 8)很多硬件设备中的快照功能,使用的就类似硬链接的原理。 9)软链接可以跨文件系统,硬链接不可以跨文件系统。 附:两种创建链接的方式如下: ln -s 源文件 链接文件 # 创建软链接 ln 源文件 硬链接文件 # 创建硬链接