Oracle® Solaris Studio 12.4:C++ 用户指南

退出打印视图

更新时间: 2014 年 12 月
 
 

14.6 生成公用的库

在组织生成一个供其他公司使用的库时,库的管理、平台的一般性以及其他问题就变得尤为重要。用于检验库是否为公用库的一个简单测试就是询问应用程序程序员是否可以轻松地重新编译该库。生成公用库时应该符合系统的应用程序二进制接口 (application binary interface, ABI)。通常,这意味着应该避免任何特定于处理器的选项。(例如,不要使用 -fast-xtarget。)

SPARC ABI 为应用程序保留了一些专用寄存器。对于 SPARC V7 和 V8,这些寄存器是 %g2%g3%g4。对于 SPARC V9,这些寄存器是 %g2%g3。由于大多数编译是针对应用程序的,所以在缺省情况下,为了提高程序的性能,C++ 编译器使用这些寄存器作为临时寄存器。但是,对公用库中寄存器的使用通常不兼容于 SPARC ABI。生成公用库时,请使用 -xregs=no%appl 选项编译所有对象,以确保不会使用应用程序寄存器。