JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris Studio 12.2: C++ ユーザーズガイド
search filter icon
search icon

ドキュメントの情報

はじめに

パート I C++ コンパイラ

1.  C++ コンパイラの紹介

2.  C++ コンパイラの使用方法

3.  C++ コンパイラオプションの使い方

パート II C++ プログラムの作成

4.  言語拡張

5.  プログラムの編成

6.  テンプレートの作成と使用

7.  テンプレートのコンパイル

8.  例外処理

9.  プログラムパフォーマンスの改善

10.  マルチスレッドプログラムの構築

パート III ライブラリ

11.  ライブラリの使用

11.1 C ライブラリ

11.2 C++ コンパイラ付属のライブラリ

11.2.1 C++ ライブラリの説明

11.2.2 C++ ライブラリのマニュアルページへのアクセス

11.2.3 デフォルトの C++ ライブラリ

11.3 関連するライブラリオプション

11.4 クラスライブラリの使用

11.4.1 iostream ライブラリ

11.4.2 complex ライブラリ

11.4.3 C++ ライブラリのリンク

11.5 標準ライブラリの静的リンク

11.6 共有ライブラリの使用

11.7 C++ 標準ライブラリの置き換え

11.7.1 置き換え可能な対象

11.7.2 置き換え不可能な対象

11.7.3 代替ライブラリのインストール

11.7.4 代替ライブラリの使用

11.7.5 標準ヘッダーの実装

11.7.5.1 標準 C++ ヘッダーの置き換え

11.7.5.2 標準 C ヘッダーの置き換え

12.  C++ 標準ライブラリの使用

13.  従来の iostream ライブラリの使用

14.  複素数演算ライブラリの使用

15.  ライブラリの構築

パート IV 付録

A.  C++ コンパイラオプション

B.  プラグマ

用語集

索引

11.5 標準ライブラリの静的リンク

デフォルト時、CC ドライバは、デフォルトライブラリの -llib オプションをリンカーに渡すことによって、libclibm を含むいくつかのライブラリの共有バージョンでリンクします。互換性モードと標準モードにおけるデフォルトライブラリのリストについては、「11.2.3 デフォルトの C++ ライブラリ」を参照してください。

このようにデフォルトのライブラリを静的にリンクする場合、-library オプションと -staticlib オプションを一緒に使用すれば、C++ ライブラリを静的にリンクできます。次に例を示します。

example% CC test.c -staticlib=Crun

この例では、-library オプションが明示的にコマンドに指定されていません。標準モード (デフォルトのモード) では、-library のデフォルトの設定が Cstd,Crun であるため、-library オプションを明示的に指定する必要はありません。

あるいは、-xnolib コンパイラオプションも使用できます。-xnolib オプションを指定すると、ドライバは自動的には -l オプションを ld に渡しません。次の例は、Solaris 8 または Solaris 9 オペレーティングシステムで libCrun と静的に、libm および libc と動的にリンクする方法を示します。

example% CC test.c -xnolib -lCstd -Bstatic -lCrun– Bdynamic -lm -lc

-l オプションの順序は重要です。-lCstd-lCrun、および -lm オプションは、-lc の前に表示します。


注 - libCrun および libCstd を静的にリンクすることはお勧めできません。/usr/lib 内の動的バージョンは、インストール先の Solaris のバージョンで動作するよう構築します。


ほかのライブラリにリンクする CC オプションもあります。そうしたライブラリへのリンクも -xnolib によって行われないように設定できます。たとえば、-mt オプションを指定すると、CC ドライバは、-lthreadld に渡します。これに対し、-mt-xnolib の両方を使用すると、CC ドライバは ld-lthread を渡しません。詳細は、「A.2.153 -xnolibを参照してください。ld については、Solaris に関するマニュアル『リンカーとライブラリ』を参照してください。


注 - /lib および /usr/lib にある Solaris ライブラリの静的バージョンは、もう使用できません。たとえば、libc を静的にリンクしようとする試みは、失敗します。

      CC hello.cc -xnolib -lCrun -lCstd -Bstatic -lc