2011-11-10 7 views
0

私は最初のramファイルシステムに複数のパッケージをインストールしようとしています。私はCライブラリとしてuclibcを使用しています。これは愚かな質問かもしれませんが...初期ramファイルシステム上のソースからパッケージをインストール

initramfsにインストールされたCライブラリが必要ですか?

私は、プログラムがソースからコンパイルされたときに、何らかの実行可能ファイルにコンパイルされていると思いますか? initramfsのアプリケーションは、make install ed(適切な接頭辞を付けて、依存関係を満たしていれば)実行する準備ができていますか?

答えて

1

コンパイルされたプログラムには、Cライブラリまたはあらゆる種類のライブラリが必要かどうかは、それがどのようにlinkedだったかによって異なります。

一般に、プログラムがstaticallyにリンクされている場合、外部依存関係はなく、動作中のカーネルのみが必要です。依存するライブラリの実行可能コードは、最終実行可能ファイルに組み込まれます。

一方、リンク先がdynamicallyの場合は、依存するライブラリのファイルがまだshared object必要です。 Linuxでは、ほとんどのライブラリ共有オブジェクト(共有ライブラリとも呼ばれます)は、ファイル名が.so、または一般的には*.so.*の形式になっています。たとえば、/lib/libssl3.so/lib/libncurses.so.5.9はどちらも自分のシステム上の共有ライブラリです。

実行可能ファイルをいくつかのライブラリに静的にリンクし、他のライブラリと動的にリンクすることもできます。一般的なケースは、まれなライブラリまたは独自のライブラリが静的にリンクされ、標準のシステムライブラリが動的にリンクされる場合です。

+0

鮮やかな答え。私に多くの助け、多くのありがとう!あなたが気にしない限り、最後の質問が1つあります。共有オブジェクトファイルはマシンに依存しませんか?例えば、自分のライブ配信がアーキテクチャ上、ホストマシンと同じであれば、共有オブジェクトファイルをコピーすることはできますか?再度、感謝します – Xleedos

関連する問題