Sun Studio 12: C++ ユーザーズガイド

A.2.146 -xnolib

デフォルトのシステムライブラリとのリンクを無効にします

通常 (このオプションを指定しない場合)、C++ コンパイラは、C++ プログラムをサポートするためにいくつかのシステムライブラリとリンクします。このオプションを指定すると、デフォルトのシステムサポートライブラリとリンクするための -llib オプションが ld に渡されません。

通常、コンパイラは、システムサポートライブラリにこの順序でリンクします。


-lCstd -lCrun -lm -lc

-lC -lm -lc

-l オプションの順序は重要です。-lm オプションは -lc の前にある必要があります。


注 –

-mt コンパイラオプションを指定した場合、コンパイラは通常 -lm でリンクする直前に -lthread でリンクします。


デフォルトでどのシステムサポートライブラリがリンクされるかを知りたい場合は、コンパイルで-dryrun オプションを指定します。たとえば、次のコマンドを実行するとします 。


example% CC foo.cc -xarch=v9 -dryrun

前述の出力には次の行が含まれます。


-lCstd -lCrun -lm -lc

A.2.146.1 例

C アプリケーションのバイナリインタフェースを満たす最小限のコンパイルを行う場合、つまり、C サポートだけが必要な C++ プログラムの場合は、次のように指定します。


example% CC -xnolib test.cc -lc

一般的なアーキテクチャー命令を持つシングルスレッドアプリケーションに libm を静的にリンクするには、次のように指定します。


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

example% CC -compat -xnolib test.cc -lC -Bstatic -lm -Bdynamic -lc

相互の関連性

-xarch=v9-xarch=v9a-xarch=v9b のいずれかでリンクする場合には、使用できない静的システムライブラリがあります (libm.alibc.a など)。

-xnolib を指定する場合は、必要なすべてのシステムサポートライブラリを手動で一定の順序にリンクする必要があります。システムサポートライブラリは最後にリンクしなければいけません。

-xnolib を指定すると、-library は無視されます。

警告

C++ 言語の多くの機能では、libC (互換モード) または libCrun (標準モード) を使用する必要があります。

このリリースのシステムサポートライブラリは安定していないため、リリースごとに変更される可能性があります。

関連項目

-library-staticlib-l