通常 (このオプションを指定しない場合)、C++ コンパイラは、C++ プログラムをサポートするためにいくつかのシステムライブラリとリンクします。このオプションを指定すると、デフォルトのシステムサポートライブラリとリンクするための -llib オプションが ld に渡されません。
通常、コンパイラは、システムサポートライブラリにこの順序でリンクします。
標準モード (デフォルトモード)
-lCstd -lCrun -lm -lc |
互換モード (-compat)
-lC -lm -lc |
-l オプションの順序は重要です。-lm オプションは -lc の前にある必要があります。
-mt コンパイラオプションを指定した場合、コンパイラは通常 -lm でリンクする直前に -lthread でリンクします。
デフォルトでどのシステムサポートライブラリがリンクされるかを知りたい場合は、コンパイルで-dryrun オプションを指定します。たとえば、次のコマンドを実行するとします。
example% CC foo.cc -xarch=v9 -dryrun |
前述の出力には次の行が含まれます。
-lCstd -lCrun -lm -lc |
C アプリケーションのバイナリインタフェースを満たす最小限のコンパイルを行う場合、つまり、C サポートだけが必要な C++ プログラムの場合は、次のように指定します。
example% CC– xnolib test.cc –lc |
一般的なアーキテクチャー命令を持つシングルスレッドアプリケーションに libm を静的にリンクするには、次のように指定します。
-xnolib を指定する場合は、必要なすべてのシステムサポートライブラリを手動で一定の順序にリンクする必要があります。システムサポートライブラリは最後にリンクしなければいけません。
-xnolib を指定すると、-library は無視されます。
C++ 言語の多くの機能では、libC (互換モード) または libCrun (標準モード) を使用する必要があります。
このリリースのシステムサポートライブラリは安定していないため、リリースごとに変更される可能性があります。
-library、-staticlib、-l