Oracle Solaris Studio 12.2: C++ ユーザーズガイド

A.2.6.1 値

-compat オプションには次の値を指定できます。

値 

意味  

-compat=4

(互換モード) 言語とバイナリの互換性を 4.0.1、4.1、4.2 コンパイラに合わせます。__cplusplus プリプロセッサマクロを 1 に、__SUNPRO_CC_COMPAT プリプロセッサマクロを 4 にそれぞれ設定します。

-compat=5

(標準モード) 言語とバイナリの互換性を ANSI/ISO 標準モード 5.0 コンパイラに合わせます。__cplusplus プリプロセッサマクロを 1997IIL に、__SUNPRO_CC_COMPAT プリプロセッサマクロを 5 にそれぞれ設定します。

-compat=g

(Linux のみ) g++ 言語拡張の認識を有効にし、Linux プラットフォームの g++ とバイナリ互換性があるコードを生成するように、コンパイラに指示します。__cplusplus プリプロセッサマクロを 199711L に、__SUNPRO_CC_COMPAT プリプロセッサマクロを 'G' にそれぞれ設定します。

-compat=g を使用すると、バイナリ互換性は個々の .o ファイルまたはアーカイブ (.a) ライブラリではなく、共有 (動的または .so) ライブラリにのみ拡張されます。

たとえば、g++ 共有ライブラリを C++ メインプログラムにリンクします。


% g++ -shared -o libfoo.so -fpic a.cc b.cc c.cc  
% CC -compat=g main.cc -L. -lfoo

さらに、C++ 共有ライブラリを g++ メインプログラムにリンクします。


% CC -compat=g -G -o libfoo.so -Kpic a.cc b.cc c.cc
% g++ main.cc -L. -lfoo 

デフォルト

-compat オプションを指定しないと、-compat=5 が使用されます。

-compat だけを指定すると、-compat=4 が使用されます。

相互の関連性

標準ライブラリは互換モード (-compat[=4]) で使用できません。

-compat[=4] では次のオプションの使用はサポートしていません。

-compat=5 では次のオプションの使用はサポートされません。

警告

共有ライブラリを構築するときは、-Bsymbolic を使用しないでください。

関連項目

C++ 移行ガイド