GNU/Linux >> Linux の 問題 >  >> Linux

複雑なプログラムを静的にリンクする方法

静的バイナリをコンパイルできない場合は、Statifier を使用して良い結果が得られました。


ほとんどの autoconf 生成された configure スクリプトを使用すると、静的ビルドを作成できます:

 ./configure --enable-static
 make

それが機能しない場合は、LDFLAGS 経由でリンカー フラグを渡すことができる場合があります。 、次のように:

 ./configure LDFLAGS=-static

gcc を使用して一連の c プログラムをコンパイルしていると思いますが、確認するには Makefile を調べる必要があります。

その場合、makefile の gcc 行を調整して静的リンクを行うことができますが、プログラムの構造によっては複雑な変更になる場合があります。 man gcc を見て、これがどのように行われるかを確認してください。

静的にリンクしている理由を知りたいです。代わりにプレリンクの使用を検討しましたか?

すべてのコンポーネントが GPL でない場合、これを行うとライセンスの問題が発生する可能性があることに注意してください。


そうです、make ファイルを編集して、リンク中に -static パラメータを gcc に追加する必要があります。


Linux
  1. プログラムの出力をZipファイルにリダイレクトする方法は??

  2. Gcc 4.7をインストールするにはどうすればいいですか?

  3. C プログラムでスレッドを終了する方法 ( pthread_exit の例 )

  1. Debian 11に静的IPを設定する-その方法は?

  2. gcc の共有ライブラリ関数のスタティック リンク

  3. RHEL 7.4 に gcc 4.9.2 をインストールする方法

  1. Ubuntu – Ubuntuで静的IPを設定する方法は?

  2. Cでアトミックインクリメントとフェッチを行う方法は?

  3. Makefile にスタティック ライブラリを含める方法