unix - UNIX 共享库可以合并为一个库吗?

标签 unix shared-libraries

我正在尝试我自己的 BSD 或 Linux 发行版。我想以对最终用户有意义的方式组织系统文件。我希望他们能够访问系统,而不会留下 *nix 留下的所有文件困惑。

有没有办法将多个动态库合并到一个文件中而不丢失动态链接?我将有权访问所有源文件。

最佳答案

这可能与系统相关,但至少对于 ELF(Linux 使用的可执行格式)来说,这是不可能的。对于 ELF,共享库有点像可执行文件:它们是链接过程的最终产品,并不是为了分解或重新链接为不同的安排而设计的。

如果您拥有进入一堆共享库的所有组件的源代码,我想您可以将它们全部链接到一个巨大的共享库中,但您将使用目标文件(*.o)或存档库(*.a)作为生成此类库的输入。

正如评论中提到的,不太可能有充分的理由想要真正这样做。

关于unix - UNIX 共享库可以合并为一个库吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14987258/

相关文章:

unix - 查找在同一行中多次出现某种模式的文件

unix - 所有进程都在使用共享库

python - Unix(Linux、FreeBSD)上如何获取系统库路径

linux - 无法加载库

centos - ldconfig : *. 所以* 不是符号链接(symbolic link)

unix - Windows/Mac/Ubuntu上的PowerShell(或脚本)可以轻松列出文件/目录结构吗?

regex - 可以[一个| b] 在 grep BRE 模式下使用表达式?

c - 是否可以在 C 程序中硬编码共享库位置?

c - 为什么我的 DEBUG_PRINT 宏没有在包含它的 c 文件中被调用

Java:使用代码从文件夹添加外部库