スティーブンキットが書いたhttps://unix.stackexchange.com/a/448943
エントリポイントを持つすべてのELFオブジェクトは、他のプロパティに関係なく実行可能ファイルにすることができます。
そしてld.so
(エントリポイントのために)実行可能ファイルと共有ライブラリです。
ELFオブジェクトファイルが共有ライブラリになるための要件と十分な条件は何ですか?
ELFオブジェクトファイルが再配置可能なオブジェクトファイルになるための要件と十分条件は何ですか?
以下の引用は、共有ライブラリが再配置可能なオブジェクトファイルであると言います。
実行ファイルも再配置可能なターゲットファイルですか?
実行ファイルは共有ライブラリですか?
コンピュータ対応アプリケーション説明する
7.3 ターゲットファイル
オブジェクトファイルは3つの形式で提供されます。
再配置可能な宛先ファイル。実行可能オブジェクトファイルを生成するために、コンパイル時に他の再配置可能オブジェクトファイルと組み合わせることができる形式のバイナリコードとデータが含まれています。
実行可能オブジェクトファイルです。メモリに直接コピーして実行できる形式のバイナリコードとデータを含みます。
ターゲットファイルを共有します。特別なタイプの再配置可能オブジェクトファイルロード時または実行時にメモリにロードされ、動的に接続できます。
ベストアンサー1
ELFオブジェクトファイルが共有ライブラリになるための要件と十分な条件は何ですか?
ELFタイプに属しますDYN
。便利にするには、ライブラリのABIを構成するシンボルもエクスポートする必要があります。
ELFオブジェクトファイルが再配置可能なオブジェクトファイルになるための要件と十分条件は何ですか?
ELFタイプに属しますREL
。これは、そのコードが再配置可能で再配置テーブルを含むことを意味します。
実行ファイルも再配置可能なターゲットファイルですか?
実行可能ファイルは再配置できますが、ファイルではありませんREL
。
実行ファイルは共有ライブラリですか?
そうかもしれませんが、ほとんどはそうではありません。ただし、多くの実行可能ファイルは、DYN
共有ライブラリとして使用する意図ではなくてもELFタイプです。これは場所に依存しない実行可能ファイルであることを示します(参考資料を参照DT_FLAGS_1
)。