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