1. ホーム
  2. linux

[解決済み] gccでの共有ライブラリ関数の静的リンク

2022-05-04 10:34:12

質問

gccで共有ライブラリ関数を静的にリンクするにはどうすればよいですか?

どのように解決するのですか?

を参照してください。

http://www.linuxquestions.org/questions/linux-newbie-8/forcing-static-linking-of-shared-libraries-696714/

リンクするためには、ライブラリのスタティック版が必要です。

共有ライブラリは、実際には特殊な形式の実行可能ファイルです。 エントリーポイントが指定されている(そして、いくつかの厄介なアドレス指定問題がある)。 が含まれています)。には必要な情報をすべて持っているわけではありません。 を静的にリンクします。

共有ライブラリを静的にリンクすることはできません(静的にリンクしているものを動的にリンクすることもできます)。

フラグ -static は、リンカに共有ライブラリ (.so) の代わりに静的ライブラリ (.a) を使うように強制します。しかし、静的ライブラリはデフォルトでインストールされるとは限りませんので、自分でインストールする必要があるかもしれません。

もう一つの可能なアプローチは スタティファイア または エルミン . どちらのツールも、動的にリンクされた実行ファイルを入力とし、すべての共有ライブラリを組み込んだ自己完結型の実行ファイルを出力として作成します。