l に指定した、CC が提供するライブラリを、コンパイルとリンクに組み込みます。
互換モード (-compat[-4]]) の場合、l には次のいずれかを指定します。
表 A–16 互換モードに使用できる -library オプション
値 |
意味 |
---|---|
[no%]f77 |
非推奨。-xlang=f77 を使用してください。 |
[no%]f90 |
非推奨。-xlang=f90 を使用してください。 |
[no%]f95 |
非推奨。-xlang=f95 を使用してください。 |
[no%]rwtools7 |
古い iostream Tools.h++ Version 7 を使用します [しません]。 |
[no%]rwtools7_dbg |
デバッグ可能な Tools.h++ Version 7 を使用します [しません]。 |
[no%]complex |
複素数の演算に libcomplex を使用します [しません]。 |
[no%]interval |
非推奨。使用しないでください。-xia を使用してください。 |
[no%]libC |
C++ サポートライブラリ libC を使用します [しません]。 |
[no%]gc |
ガベージコレクション libgc を使用します [しません]。 |
Sun Performance LibraryTM を使用します [しません]。 |
|
%none |
libC の場合を除いて C++ ライブラリを一切使用しません。 |
標準モード (デフォルトモード) の場合、l には次のいずれかを指定します。
表 A–17 標準モードに使用できる -library オプション
値 |
意味 |
---|---|
[no%]f77 |
非推奨。-xlang=f77 を使用してください。 |
[no%]f90 |
非推奨。-xlang=f90 を使用してください。 |
[no%]f95 |
非推奨。-xlang=f95 を使用してください。 |
[no%]rwtools7 |
古い iostream Tools.h++ Version 7 を使用します [しません]。 |
[no%]rwtools7_dbg |
デバッグ可能な Tools.h++ Version 7 を使用します [しません]。 |
[no%]rwtools7_std |
標準 iostream Tools.h++ Version 7 を使用します [しません]。 |
[no%]rwtools7_std_dbg |
デバッグが可能な標準 iostream Tools.h++ Version 7 を使用します [しません]。 |
[no%]interval |
非推奨。使用しないでください。-xia を使用してください。 |
[no%]iostream |
古い iostream ライブラリ libiostream を使用します [しません]。 |
[no%]Cstd |
C++ 標準ライブラリ libCstd を使用します [しません]。コンパイラ付属の C++ 標準ライブラリヘッダーファイルをインクルードします [しません]。 |
[no%]Crun |
C++ 実行時ライブラリ libCrun を使用します [しません]。 |
[no%]gc |
ガベージコレクション libgc を使用します [しません]。 |
[no%]stlport4 |
デフォルトの libCstd の代わりに STLport の標準ライブラリ実装 Version 4.5.3 を使用します [しません]。STLport の実装の詳細は、「13.3 STLport」を参照してください。 |
[no%]stlport4_dbg |
STLport のデバッグ可能なライブラリを使用します [しません]。 |
[no%]sunperf |
Sun Performance Library を使用します [しません]。 |
%none |
libCrun の場合を除いて C++ ライブラリを使用しません。 |
互換モード (-compat[=4])
-library を指定しない場合は、-library=libC が想定されます。
library=no%libC で特に除外されないかぎり、libC ライブラリは常に含まれます。
標準モード (デフォルトモード)
-library=%none、-library=no%Cstd、-library=stlport4 のいずれかで特に除外されないかぎり、libCstd ライブラリは常に含まれます。
-library=no%Crun で特に除外されないかぎり、libCrun ライブラリは常に含まれます。
-library=%none が指定されたとしても、標準または互換のどちらのモードであるかに関わりなく、libm および libc ライブラリは常に含まれます。
標準モードで libCrun 以外の C++ ライブラリを除外してリンクするには、次のコマンドを使用します。
example% CC -library=%none |
標準モードで従来の iostream と RogueWave tools.h++ ライブラリを使用するには、次のコマンドを使用します。
example% CC –library=rwtools7,iostream |
標準モードで標準 の iostream と Rogue Wave tools.h++ ライブラリを使用するコマンドは次のとおりです。
example% CC -library=rwtools7_std |
互換モードで従来の iostream と Rogue Wave tools.h++ ライブラリを使用するコマンドは次のとおりです。
example% CC -compat -library=rwtools7 |
-library でライブラリを指定すると、適切な -I パスがコンパイルで設定されます。リンクでは、適切な -L、-Y P、および -R パスと、-l オプションが設定されます。
このオプションは、置き換えられる代わりに蓄積されます。
区間演算ライブラリを使用するときは、libC、libCstd、または libiostream のいずれかのライブラリを取り込む必要があります。
-library オプションを使用すると、指定したライブラリに対する -l オプションが正しい順序で送信されるようになります。たとえば、-library=rwtools7,iostream および -lirabary=iostream,rwtools7 のどちらでも、-l オプションは、-lrwtool -liostream の順序で ld に渡されます。
指定したライブラリは、システムサポートライブラリよりも前にリンクされます。
-library=sunperf と -xlic_lib=sunperf は同じコマンド行で使用できません。
どのコマンド行でも、-library=stlport4 または -library=Cstd オプションのうち使用できるオプションは、多くても 1 つだけです。
同時に使用できる RogueWave ツールライブラリは 1 つだけです。また、-library=stlport4 を指定して RogueWave ツールライブラリと併用することはできません。
従来の iostream RogueWave ツールライブラリを標準モード (デフォルトモード) で取り込む場合は、libiostream も取り込む必要があります (詳細は、『C++ 移行ガイド』を参照してください)。標準 iostream RogueWave ツールライブラリは、標準モードでのみ使用できます。次のコマンド例は、RogueWave tools.h++ ライブラリオプションの有効もしくは無効な使用法について示します。
% CC -compat -library=rwtools7 foo.cc <-- valid % CC -compat -library=rwtools7_std foo.cc <-- invalid % CC -library=rwtools7,iostream foo.cc <-- valid, classic iostreams % CC -library=rwtools7 foo.cc <-- invalid % CC -library=rwtools7_std foo.cc <-- valid, standard iostreams % CC -library=rwtools7_std,iostream foo.cc <-- invalid |
libCstd と libiostream の両方を含めた場合は、プログラム内で新旧両方の形式の iostream (例: cout と std::cout) を使用して、同じファイルにアクセスしないよう注意してください。同じプログラム内に標準 iostream と従来の iostream が混在し、その両方のコードから同じファイルにアクセスすると、問題が発生する可能性があります。
libC ライブラリをリンクしない互換モードプログラムは、C++ 言語のすべての機能を使用できるわけではありません。同様に、Crun ライブラリ、または Cstd と stlport4 いずれのライブラリもリンクしない標準モードプログラムは、C++ 言語のすべての機能を使用できるわけではありません。
-xnolib を指定すると、-library は無視されます。
別々の手順でコンパイルしてリンクする場合は、コンパイルコマンドに表示される一連の -library オプションをリンクコマンドにも表示する必要があります。
stlport4、Cstd、および iostream のライブラリは、固有の入出力ストリームを実装しています。これらのライブラリの 2 個以上を-library オプションを使って指定した場合、プログラム動作が予期しないものになる恐れがあります。STLport の実装の詳細は、「13.3 STLport」を参照してください。
これらのライブラリは安定したものではなく、リリースによって変わることがあります。
-I、-l、-R、-staticlib、-xia、-xlang、-xnolib、「11.4.8 アプリケーションの例」、「警告:」、「13.3.1 再配布とサポートされる STLport ライブラリ」、『Tools.h++ ユーザーズガイド』、『Tools.h++ クラスライブラリリファレンスマニュアル』、『Standard C++ Class Library Reference』、『 C++ Interval Arithmetic Programming Reference』
-library=no%cstd オプションを使用して、ユーザー独自の C++ 標準ライブラリの使用を有効にする方法については、「12.7 C++ 標準ライブラリの置き換え」を参照してください。