コンパイルとリンクを別々に実行する場合で、次のコンパイラオプションを使用する場合は、コンパイルとリンクの整合性を保つことが非常に重要です。
-B
-compat
-fast
-g
-g0
-library
-misalign
-mt
-p
-xa
-xarch
-xcg92 および -xcg89
-xipo
-xpagesize
-xpg
-xprofile
-xtarget
これらのオプションのいずれかを使用してサブプログラムをコンパイルした場合は、リンクでも同じオプションを使用してください。
-library、-fast、-xtarget、-xarch オプションの場合、コンパイルとリンクを同時に行えば渡されるはずのリンカーオプションも含める必要があります。
-p、-xpg、-xprofile オプションの場合、ある段階ではオプションを指定して別の段階では指定しないと、プログラムの正しさには影響はありませんが、プロファイル処理ができなくなります。
-g、-g0 オプションの場合、ある段階ではオプションを指定して別の段階では指定しないと、プログラムの正しさには影響はありませんが、プログラムを正しくデバッグできなくなります。これらのオプションでコンパイルされず、-g または -g0 でリンクされるいずれのモジュールも、デバッグには使用できません。-g または -g0 オプション付きの main 関数を含むモジュールをコンパイルすることは、通常はデバッグに必要になります。
次の例では、-xcg92 コンパイラオプションを使用してプログラムをコンパイルしています。このオプションは -xtarget=ss1000 用のマクロであり、-xarch=v8 -xchip=super -xcache=16/64/4:1024/64/1 と展開されます。
example% CC -c -xcg92 sbr.cc example% CC -c -xcg92 smain.cc example% CC -xcg92 sbr.o smain.o |
プログラムがテンプレートを使用する場合は、リンク時にその中のいくつかがインスタンス化される可能性があります。 その場合、インスタンス化されたテンプレートは最終行 (リンク行) のコマンド行オプションを使用してコンパイルされます。