![](/img/trans.png)
[英]Difference between shared objects (.so), static libraries (.a), and DLL's (.so)?
[英]Difference between a shared object and a dll
我有一个库,它在编译时正在构建一个名为 libEXAMPLE.so(在 so.le 文件夹中)的共享对象,以及一个名为 EXAMPLE.so 的 dll(在 dll 文件夹中)。 这两个共享对象的大小非常相似,看起来完全相同。 在互联网上搜索显示,程序使用 dll 进行符号解析的方式与使用共享对象的方式可能存在差异。
你们能帮我理解这个吗?
“DLL”是 Windows 喜欢如何命名它们的动态库
“SO”是 linux 喜欢如何命名他们的动态库
两者都有相同的目的:动态加载。
Windows 使用 PE 二进制格式,Linux 使用 ELF。
体育: http : //en.wikipedia.org/wiki/Portable_Executable
精灵: http : //en.wikipedia.org/wiki/Executable_and_Linkable_Format
我想是一个 Linux 操作系统。
在 Linux 中,静态库(.a,也称为档案)用于编译时的链接,而共享对象 (.so) 用于加载时和运行时的链接。
在您的情况下,似乎出于某种原因,即使这两个文件完全相同,库也会区分加载时链接(libEXAMPLE.so)和运行时链接(EXAMPLE.so)的文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.