リンカーとライブラリ

命名規約

共有オブジェクトは、メジャー (major) ナンバーファイル接尾辞を含むという命名規約に従います(命名規約を参照)。この共有オブジェクト内では、1 つまたは複数のバージョン定義を作成できます。各バージョン定義は、次のいずれかに分類できます。

次のバージョン定義命名規約は、定義がどの分類に属するのかを示すために役立ちます。

最初の 3 つの分類は、インタフェース定義を示します。これらの定義は、インタフェースを構成する大域シンボル名とバージョン定義名の関連付けからなります(バージョン定義の作成を参照)。共有オブジェクト内のインタフェースの変更は、しばしば「マイナーリビジョン (minor revision)」と呼ばれます。このため、このタイプのバージョン定義には、マイナー (minor) バージョンナンバーの接尾辞を付けます。これは、ファイル名のメジャー (major) バージョンナンバーの接尾辞をベースとしたものです。

最後の分類は、オブジェクト内の変更を示します。この定義は、ラベルとして機能するバージョン定義からなり、関連するシンボル名はありません。この定義は、ウィーク (weak) バージョン定義と呼ばれます(ウィークバージョン定義の作成を参照)。共有オブジェクト内の実装の変更は、しばしば「マイクロリビジョン (micro revision)」と呼ばれます。このため、このタイプのバージョン定義には、マイクロ (micro) バージョンナンバーの接尾辞を付けます。これは、元になったもののマイナーナンバーをベースとしたものです。

業界標準インタフェースは、この標準を反映するバージョン定義名を使用しなければなりません。ベンダーインタフェースは、そのベンダー固有のバージョン定義名を使用する必要があります。この点で、しばしば利用されるのが、企業の株式銘柄のシンボルです。

非公開バージョン定義は、使用方法が制限されているかまたは保証されていないシンボルを示します。特に、「private」という語を明確に示す必要があります。

バージョン定義を行うと、関連するバージョンシンボル名が必ず作成されます。したがって、一意の名前およびマイナー (minor) / マイクロ (micro) の接尾辞の使用という規則を使用すると、構築されるオブジェクト内でシンボルが衝突する可能性を減らすことができます。

次の定義例は、これらの命名規約の使用方法を示しています。

SVABI.1

「System V アプリケーションバイナリインタフェース」標準インタフェースを定義します。

SUNW_1.1

Solaris 公開インタフェースを定義します。

SUNWprivate_1.1

Solaris 非公開インタフェースを定義します。

SUNW_1.1.1

Solaris 内部実装の変更を示します。