Sun C++ コンパイラには、いくつかのライブラリが添付されています。 これらのライブラリには、互換モード (-compat=4) だけで使用できるもの、標準モード (-compat=5) だけで使用できるもの、あるいは両方のモードで使用できるものがあります。libgc ライブラリと libdemangle ライブラリには C インタフェースがあり、どちらのモードでもアプリケーションにリンクできます。
次の表に、Sun C++ コンパイラに添付されるライブラリと、それらを使用できるモードを示します。
表 11-1 C++ コンパイラに添付されるライブラリ
|
注 - STLport、Rogue Wave、または Solaris Studio C++ ライブラリの構成マクロを再定義したり変更したりしないでください。ライブラリは C++ コンパイラとともに動作するよう構成および構築されています。libCstd と Tool.h++ は互いに働き合うように構成されているので、その構成マクロを変更すると、プログラムのコンパイルやリンクが行われなくなったり、プログラムが正しく実行されなくなったりします。
これらのライブラリについて簡単に説明します。
libCrun: このライブラリには、コンパイラが標準モード (-compat=5) で必要とする実行時サポートが含まれています。new と delete、例外、RTTI がサポートされます。
libCstd: これは C++ 標準ライブラリです。特に、このライブラリには iostream が含まれています。既存のソースで従来の iostream を使用している場合には、ソースを新しいインタフェースに合わせて修正しないと、標準 iostream を使用できません。詳細は、オンラインマニュアルの『Standard C++ Library Class Reference』を参照してください。
libiostream: これは標準モード (-compat=5) で構築した従来の iostream ライブラリです。既存のソースで従来の iostream を使用している場合には、libiostream を使用すれば、ソースを修正しなくてもこれらのソースを標準モード (-compat=5) でコンパイルできます。このライブラリを使用するには、-library=iostream を使用します。
注 - 標準ライブラリのほとんどの部分は、標準 iostream を使用することに依存しています。従来の iostream を同一のプログラム内で使用すると、問題が発生する可能性があります。
libC: これは互換モード (-compat=4) で必要なライブラリです。このライブラリには C++ 実行時サポートだけでなく従来の iostream も含まれています。
libcomplex: このライブラリは、互換モード (-compat=4) で複素数の演算を行うときに必要です。標準モードの場合は、libCstd の複素数演算の機能が使用されます。
libstlport: これは、C++ 標準ライブラリの STLport 実装です。このライブラリを使用するには、デフォルトの libCstd の代わりにオプション -library=stlport4 を指定します。ただし、libstlport と libCstd の両方を同一プログラム内で使用することはできません。インポートしたライブラリを含み、すべてをどちらか一方のライブラリだけを使ってコンパイルしリンクする必要があります。
librwtool (Tools.h++): Tools.h++ は、RogueWave の C++ 基礎クラスライブラリです。Version 7 が提供されています。このライブラリは廃止され、新しいコードでこのライブラリを使用することは非推奨です。RW Tools.h++ を使用していた、C++ 4.2 用に作成されたプログラムに対応する目的で、このライブラリは提供されています。
libgc: このライブラリは、展開モードまたはガベージコレクションモードで使用します。libgc ライブラリにリンクするだけで、プログラムのメモリーリークを自動的および永久的に修正できます。プログラムを libgc ライブラリとリンクする場合は、free や delete を呼び出さずに、それ以外は通常どおりにプログラムを記述できます。ガベージコレクションライブラリは、動的読み込みライブラリと依存関係があるため、プログラムのリンクでは、-lgc および -ldl を指定します。
詳細については、gcFixPrematureFrees(3) および gcInitialize(3) のマニュアルページを参照してください。
libdemangle: このライブラリは、C++ 符号化名を復号化するときに使用します。
この節で説明しているライブラリに関するマニュアルページは 1、3、3C++、および 3cc4 の各節にあります。
C++ ライブラリのマニュアルページにアクセスするには次のとおり入力してください。
example% man library-name
C++ ライブラリの Version 4.2 のマニュアルページにアクセスするには次のコマンドを入力してください。
example% man -s 3CC4 library-name
これらのライブラリには、CC ドライバによってデフォルトでリンクされるものと、明示的にリンクしなければならないものがあります。標準モードでは、次のライブラリが CC ドライバによってデフォルトでリンクされます。
互換モード (-compat) では、次のライブラリがデフォルトでリンクされます。
-lC -lm -lc
詳細は、「A.2.49 -library=l[ ,l...]」を参照してください。