大家可能都对Windows系统中后缀名为dll(即dynamic link library )的动态链接库文件比较熟悉,玩过一些单机游戏的人都会因为自己的机器缺少或者丢失dll文件而去一些网站上找,并拷贝到C盘Windows下的System目录中,使得游戏或者一些应用程序能够正常运行。
在UNIX或Linux上是Shared Library。库文件是预先编译链接好的可执行文件,存储在计算机的硬盘上。大多数情况下,同一时间多个应用可以使用一个库的同一份拷贝,操作系统不需要加载这个库的多个实例。
Windows 和 Linux 的加载时链接是由操作系统来完成的,格式在不同的系统下有不同的区别,但是原理还是一样的。Linux下文件的类型是不依赖于其后缀名的,但一般来讲:
.o 是目标文件,相当于windows中的.obj文件;
.so 为共享库,是shared object,用于动态连接的,和dll差不多;
.a为静态库,是好多个.o合在一起,用于静态连接;
.la为libtool自动生成的一些共享库,vi编辑查看,主要记录了一些配置信息。
精通Linux的人都会动态链接库的编译、链接还有一些解析
本文介绍了Windows系统中DLL文件的作用及常见问题解决方法,并对比了Linux系统中的共享库(.so文件),阐述了它们在不同操作系统下的实现差异。
1万+

被折叠的 条评论
为什么被折叠?



