c++ - 共享对象和dll之间的区别

标签 c++ c dll shared-libraries

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

你们能帮我理解一下吗?

最佳答案

“DLL”是windows喜欢给自己的动态库命名的方式

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

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

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

体育: http://en.wikipedia.org/wiki/Portable_Executable

小 Sprite : http://en.wikipedia.org/wiki/Executable_and_Linkable_Format

关于c++ - 共享对象和dll之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13295628/

相关文章:

c++ - 在 operator()() 中对具有状态和两个参数的函数对象使用 boost bind

c++ - 用> =比较字符串是什么意思

c++ - 函数调用中参数前的双哈希

c - 在 while 循环内使用 scanf 读取数组时出现意外行为

java - native 方法链接错误

c++ - 以参数为类指针的虚函数

c++ - DirectShow Graph::RenderFile --> VFW_E_NOT_FOUND 重建项目

c - 在 0 终止后打印 C 字符串

c++ - R代码或.R文件的DLL

c# - 在 C# 中处理来自非托管 dll 的异常