首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >共享对象和dll之间的区别

问共享对象和dll之间的区别
EN

Stack Overflow用户
提问于 2012-11-09 02:43:21
回答 2查看 7.3K关注 0票数 5

我有一个库,它在编译时构建一个名为libEXAMPLE.so的共享对象(在so.le文件夹中),以及一个名为EXAMPLE.so的dll (在dll文件夹中)。这两个共享对象在大小上非常相似,看起来完全一样。在互联网上搜索发现,程序使用dll进行符号解析的方式与使用共享对象进行符号解析的方式可能存在差异。

你们能帮我理解这一点吗?

EN

回答 2

Stack Overflow用户

发布于 2012-11-09 02:52:49

"DLL“是windows喜欢用来命名它们的动态库的方式

"SO“是linux喜欢给他们的动态库命名的方式

两者都有相同的目的:动态加载。

Windows使用PE二进制格式,linux使用ELF。

PE:http://en.wikipedia.org/wiki/Portable_Executable

精灵:http://en.wikipedia.org/wiki/Executable_and_Linkable_Format

票数 7
EN

Stack Overflow用户

发布于 2020-07-28 16:09:10

我想是Linux操作系统。

在Linux中,静态库(.a,也称为归档)用于在编译时进行链接,而共享对象(.so)用于在加载时和运行时进行链接。

在您的例子中,似乎由于某些原因,库区分了加载时链接(libEXAMPLE.so)和运行时链接(EXAMPLE.so)的文件,即使这两个文件完全相同。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13295628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档