静的バイナリの生成

静的バイナリの生成

アプリケーション(例:fdisk)をインストールしました。ただし、実行するにはライブラリが必要です。静的バイナリを作成するのに役立つユーティリティ/ツールを探しています。すでにインストールされたバイナリ。これにより、どこでも使用できます。

私が見つけた唯一の信頼できるツールErmineLightは次のとおりです。 ここしかし、これはシェアウェアです。

利用可能なオープンソースソフトウェアはありますか?

EDIT fdiskは単なる例です。私はほとんどLFSで作業しているので、ユーティリティを使用する必要がある場合は、次の手順に従う必要があります。

  1. ソースコードのダウンロード
  2. 構成
  3. 作る
  4. テストを行う
  5. 設置するために、

そのため、時間を節約するために、Debian、Fedora、または他のディストリビューションで静的バイナリを作成してLFSで試してみて、正しく動作するか、要件に応じてソースコードを使用してコンパイルするソリューションを探しています。 。

答え1

fdiskが単なる例であり、実際に目標が動的実行可能ファイルから静的実行可能ファイルを生成することである場合は、次のことを試してください。エルフ安定剤。でもErmineとの比較(Ermineサプライヤー提供、(非)購入者の注意)。気づく

  • 実行可能ファイルが多い場合は、フルサイズは動的にリンクされた実行可能ファイルと必要な動的ライブラリの合計サイズより大きくなる可能性があります。
  • GNU libcの一部の機能は、静的にリンクされた実行可能ファイルでは機能しない場合があります。国家安全保障局(ユーザー名、ホスト名などのデータベース)とロケール関連機能。

あなたの目標が小さくて携帯可能なシステムツールセットを持つことであれば、次のものを探しています。忙しい箱、組み込みシステム用のコアツールセット(付属)fdisk)。次のように、Glibcより小さい標準ライブラリにも興味があるかもしれません。フードライブラリまたはμClibc

答え2

うーん…それは本当に悪い考えのようです。しかし可能です。

fdiskはオープンソースなので、ソースコードを入手してMakefileを見てください。コンパイル時に「-static」をgccに渡すオプションを見つける必要があります。

私はC / C ++の専門家ではありませんが、私が知っている限り、既存の動的にリンクされたバイナリから静的にリンクされたバイナリを作成することは不可能です。

どこでも使用するには、数秒で起動してすべてを変更できる小さなメンテナンスディストリビューションを使用することをお勧めします。

Linux/UNIX インストールが実行されるディスクを変更したい場合もあるので、これはより意味があります。

答え3

また、使用することができますELFexリンカーちょうど見つけた本当に素晴らしいプログラムには、動的実行可能ファイルから静的実行可能ファイルを生成するGUIがあります。

関連情報