将共享库打包到精灵中

时间:2008-12-22 15:54:05

标签: linux shared-libraries elf

是否有一个实用程序可以使用 ALL 一个Elf需要将它们变成静态的SO然后将Elf转换为SO是免费的?

5 个答案:

答案 0 :(得分:10)

以下是您可能会觉得有用的一些项目:

  • Statifier(基本上可以做你想要的)
  • ERESI(可能会做你想要的,也允许分析ELF目标)

注意:我自己没有使用任何一个应用程序。

答案 1 :(得分:3)

Statifier是一种选择。另一种选择是 Ermine。 虽然Ermine是商业化的,但它在具有内存随机化的系统上的表现要好于statifier。

答案 2 :(得分:2)

我使用了codelogic提到的Statifier。

它适用于几个Linux命令,如ethtool。

答案 3 :(得分:1)

可能不是,虽然从理论上来说,毫无疑问,它可以做到。

需要注意的一个方面 - 典型的程序不会使用来自给定SO的所有代码,所以盲目地包含每个SO中的所有材料会给你一个非常臃肿的可执行文件。经典静态链接仅包含所需的链接。

另一个需要注意的方面是C ++模板实例化。我假设这些主要出现在可执行文件中(不作为SO的一部分)。

答案 4 :(得分:0)

您可以在编译时链接-static。你想在编译后做这个吗?