Oracle Solaris Studio 12.2:C++ 用户指南

A.2.6.1 值

-compat 选项可以有下列值。

值 

含义  

–compat=4

(兼容模式)设置语言和二进制使其与 4.0.1、4.1 和 4.2 编译器兼容。将 __cplusplus 预处理程序宏和 __SUNPRO_CC_COMPAT 预处理程序宏分别设置为 1 和 4。

–compat=5

(标准模式)设置语言和二进制使其与 ANSI/ISO 标准模式兼容。将 __cplusplus 预处理程序宏和 __SUNPRO_CC_COMPAT 预处理程序宏分别设置为 199711L 和 5。

-compat=g

(仅限 Linux)用于识别 g++ 语言扩展,并使编译器在 Linux 平台上生成与 g++ 二进制兼容的代码。将 __cplusplus 预处理程序宏设置为 199711L,将 __SUNPRO_CC_COMPAT 预处理程序宏设置为 'G'

使用 -compat=g 时,二进制兼容性仅扩展到共享(动态或 .so)库,而不扩展到个别 .o 文件或归档 (.a) 库。

例如,将 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++ 迁移指南