マニュアルページ(ar 用) を読むことは良い出発点です:
c
アーカイブを作成します。更新を要求すると、指定されたアーカイブが存在しない場合は常に作成されます。ただし、この修飾子を使用して作成することを事前に指定しない限り、警告が発行されます。
r
ファイルmember ... をアーカイブに挿入します (置換あり)。この操作は、名前が追加されるものと一致する場合、既存のメンバーが削除されるという点で q とは異なります。
s
アーカイブに他の変更が加えられていない場合でも、オブジェクト ファイル インデックスをアーカイブに書き込むか、既存のインデックスを更新します。この修飾子フラグは、任意の操作で使用することも、単独で使用することもできます。ar s
アーカイブに対して" " を実行することは、それに対してranlibを実行することと同じです。
POSIXと比較すると、1 つの違いに気付くかもしれません: GNU ar は、"-" 接頭辞オプション自体をオプションにします。
アーカイブには、オブジェクト ファイル以外のアイテムを含めることができます (これはあまり行われませんが)。ranlib
オブジェクト ファイルを含むアーカイブは、リンカーで使用できるようにするために、追加のメンテナンス (たとえば、 によって実行) が必要です。
Rationale in POSIX ar によると、この-s
オプションは BSD に由来します (System Vはこれを自動的に行いました)。ただし、単独で実行ranlib
することは一般的な方法-s
です (めったに使用されません)。興味深いことに、POSIX には がなくranlib
、最終的には、さまざまなプラットフォームで実行するために作成された多数の makefile で、この-s
オプションが置き換えられます。ranlib