我安装了一个应用程序[例如fdisk]。但它需要库来执行。我正在寻找实用程序/工具,它将帮助我创建静态二进制文件已经安装的二进制文件。这样我就可以在任何地方使用它。
我发现的唯一可靠的工具ErmineLight
来自
这里,但这是共享软件。
有没有可用的开源软件?
EDIT
fdisk 只是一个例子。我大部分时间都在 LFS 上工作,所以如果我必须使用任何实用程序,我需要按照以下步骤操作
- 下载源码
- 配置
- 制作
- 进行测试
- 进行安装,
因此,为了节省时间,我正在寻找一种解决方案,在该解决方案中,我将从 debian、fedora 或其他发行版制作静态二进制文件,在 LFS 上尝试,如果它工作正常或按照我的要求,我将使用源代码进行编译。
答案1
如果 fdisk 只是一个示例,而您的目标实际上是从动态可执行文件生成静态可执行文件,请尝试精灵稳定器。甚至还有一个与 Ermine 的比较(由 Ermine 供应商提供,所以请注意(非)买者)。注意
- 如果您有许多可执行文件,它们的总大小可能会大于动态链接的可执行文件加上必要的动态库的总大小。
- GNU libc 的某些功能可能无法在静态链接的可执行文件中工作,例如国家安全局(用户名、主机名等数据库)和与区域设置相关的功能。
如果您的目标是拥有一套小型、便携式系统工具,那么您正在寻找忙碌盒,一套用于嵌入式系统的核心工具(包括fdisk
)。您可能还对比 Glibc 更小的标准库感兴趣,例如饮食库或者µClibc。
答案2
嗯...这看起来是一个非常糟糕的主意。但是,这是可能的。
由于 fdisk 是开源的,只需获取其源代码并查看 Makefile。您应该找到一个在编译时将“-static”传递给 gcc 的选项。
我不是 C/C++ 专家,但据我所知,从现有的动态链接二进制文件创建静态链接二进制文件是不可能的。
如果您想在任何地方使用它,我建议您使用一个小型维护发行版,它可以在几秒钟内启动并让您修改所有内容。
这对我来说更有意义,因为您可能想要修改运行 Linux/UNIX 安装的磁盘。
答案3
你也可以使用ELFex 链接器,这是我刚刚发现的一个非常酷的程序,它的 GUI 可以从动态可执行文件创建静态可执行文件。