如何在 Mac os 中链接 linux .so 共享库?

Posted

技术标签:

【中文标题】如何在 Mac os 中链接 linux .so 共享库?【英文标题】:How could I link a linux .so shared library in Mac os? 【发布时间】:2015-05-31 16:51:21 【问题描述】:

我有第三方给我.so文件,该文件已经编译共享库。

就像:

file securitymduserapi.so 
securitymduserapi.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, not stripped

但是当我尝试使用otool 显示更多信息时,我收到了这个错误:

otool -L securitymduserapi.so 
securitymduserapi.so: is not an object file

可以在macos中链接linux compile .so共享库。

Mac 操作系统版本:10.10.3

我还在纠结mac的linux架构,如果我在linux中创建一个共享库,我可以尝试在mac os中使用这个共享库吗?

【问题讨论】:

您通常无法在 MacSX 上链接 Linux 共享对象。 ABI 是不同的。您是否考虑过在某个 VM 中运行 Linux? 您需要请求库的 Mac 版本,或在 Linux 上运行(通常是编译 .so 时使用的特定版本,或尽可能接近)。 @EmployedRussian 有你的答案;-) 【参考方案1】:

如果我在linux中创建了一个共享库,我可以尝试在mac os中使用这个共享库吗?

你可以尝试,但你不会成功。

您不会期望能够在 MacOS 上使用 Windows .DLL,对吗? Linux .so 在这种情况下没有什么不同。

【讨论】:

以上是关于如何在 Mac os 中链接 linux .so 共享库?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 Mac OS X 上的 Unix 域套接字传递用户凭据?

如何解决 OS X 上 libobjc.A.dylib 造成的的内存泄露问题

第40月第20天 在Mac OS X上.dylib和.so之间的区别

如何在 C 预处理器中可靠地检测 Mac OS X、iOS、Linux、Windows? [复制]

在 C/C++ 程序中,系统(windows、linux、mac OS X)如何调用 main() 函数?

在 MAC OS X 上创建桌面快捷方式(如 .desktop 在 linux 中)